用C语言完成一个功能,判断一个数在哪一个区间

已经生成19个0~9999间的随机数a1、a2、……a19(已按大小排序),将0~9999随机划分为不均匀的20个区间,[0,a1),[a1,a2),……,[a19,10000).
求一个算法,实现输入一个数,判断该数落在哪一个区间中?
希望:
耗时尽量少;
c90要求语句嵌套不高于15个(比如if(){}else if(){}else if(){}……else if(){}else{}这样的分支不能超过15个);

第1个回答  2015-10-26
吧0(a0), a1~a19放到数组中, 然后循环判断就行了
for(int i=0; i<19 i++)
{
if(number>=a[i] && number<=a[i+1])

{

cout<<"Range Num: "<< i+1;

break;

}
}追问

谢谢!我也只想到这样。
还想请问一下如果区间是均分的,怎么能快一点,二分法吗?还有别的写法吗?

追答

平均分配的话只要做个除法就行了, 比如平均分成20个区间, 就把输入的数与20做整除运算,然后结果+1 就行了, 不用二分法

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网