思维导图
C++代码实现
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int main(){
long long low, high, mid, guess, ans = 0;
low = 0; high = 400000; //high决定数据上限,可以随意改动。
cin >> guess; //输入你想让程序查找的数字。
for (int i = 1;; i++){
ans++; //记录查找次数。
mid = (low + high) / 2; //求出中位数。
if (mid == guess){
break;
}
else if (mid > guess){
high = mid; //将上限定为上次查找的数字。
}
else {
low = mid; //将下限定为上次查找的数字。
}
cout << mid << ' '; //输出本次查找的数字。
}
cout << endl << guess << ' ' << ans; //输出数字、次数。
return 0;
}