Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
109284 | 李承瀚 | 折半查找法 | C++ | 通过 | 100 | 1 MS | 292 KB | 598 | 2023-11-08 13:22:25 |
#include <bits/stdc++.h> using namespace std; int a[10005]; int sou(int j,int k,int s){ if(j>k){ return -1; } if(a[(j+k)/2]==s){ return (j+k)/2; } if(a[(j+k)/2]<s){ return sou((j+k)/2+1,k,s); } if(a[(j+k)/2]>s){ return sou(j,(j+k)/2-1,s); } } int main() { int n; int suan; int suo; while(scanf("%d",&n)!=EOF){ for(int i=1;i<=n;i++){ scanf("%d",&a[i]); } scanf("%d",&suan); suo=sou(1,n,suan); printf("%d\n",suo); } return 0; }