用二分法实现猜数字:
当输入一个数字时,若大于所设定的,系统则报告太大,否则太小,然后会提示缩小范围来查找,直到猜到为止.
----------------解决方案--------------------------------------------------------
不是和一般的二分查找一样.
----------------解决方案--------------------------------------------------------
有点不明白LZ的意思。..
既然每次猜不到的时候是电脑提示....
又何来保证二分查找??
你输入的数就一定能保证在数组的中间吗
----------------解决方案--------------------------------------------------------
应可以选择把第一次猜的数字与随机数相比,然后利用这个数来实现二分查找.
----------------解决方案--------------------------------------------------------
那就是输入2分查找了.不属于LZ说的那种情况了
----------------解决方案--------------------------------------------------------
所设定
它有设定界值,所以可以按所有数来进行二分.
----------------解决方案--------------------------------------------------------
诸位有的人不明白我的意思我再说详细点:要求用二分法猜数字,比如原始设定数字为17,当你输入89时,系统则会提示太大,再输入15时,则提示比较接近,这样精度会更高,不会乱猜下去的,那位能帮我把算法写出来,兄弟我万分感激,兄弟我还在初学C语言,希望能得到大家的帮助!!!!
----------------解决方案--------------------------------------------------------
你既然知道是用二分查找,这种程序自己写写来的好。
----------------解决方案--------------------------------------------------------
我之所以来发贴是因为我不会 ,所以请求诸位能帮小弟一把啊
----------------解决方案--------------------------------------------------------
#include<iostream.h>
#include<stdlib.h>
#include<time.h>
void main()
{
int number;
srand((unsigned)time(NULL));
number=rand()%100;
int n,count=0;
cout<<"Enter the number you guess:";
cin>>n;
count++;
while(n!=number)
{
if(n>number)
{
cout<<"Too Big!"<<endl;
cout<<"Enter again:";
cin>>n;
count++;
}
else
{
cout<<"Too small!"<<endl;
cout<<"Enter again:";
cin>>n;
count++;
}
}
cout<<"The number you guess is "<<n<<" and the times you guess is "<<count<<endl;
}
----------------解决方案--------------------------------------------------------