竞赛
考级
#include<bits/stdc++.h> using namespace std; int a[105]; int main(){ int n,m; cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; cin>>m; for(int i=1;i<=n;i++){ if(a[i]==m){ cout<<i; return 0; } } cout<<-1; return 0; }
༺ཌༀ⚡☢WA君☢⚡ༀད༻
灵机一动
LZGBRans0n
隐姓埋名
Winson孙
#include<bits/stdc++.h> using namespace std; int n; int a[1000005]; int ans = -1; void dfs(int l,int r, int x){ if(l>r) return ; int mid = (l+r) >> 1; if(a[mid] >= x){ ans = mid; dfs(1,mid-1,x); } else{ dfs(mid+1,r,x); } return ; } int main(){ cin >> n; for(int i = 1; i <= n ; i ++){ cin >> a[i]; } int x; cin >> x; dfs(1,n,x); if(a[ans] == x)cout << ans; else cout << -1; return 0; }
c++
#include<bits/stdc++.h> using namespace std; int main(){ int len; cin>>len; int b[101]={0}; for(int i=1;i<=len;i++){ cin>>b[i]; } int x; cin>>x; for(int i=1;i<=len;i++){ if(b[i]==x){ cout<<i; return 0; } } cout<<-1; return 0; }
维尼不吃蜂蜜
#include<iostream> using namespace std; int n,x,a[1000005]; int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } cin>>x; int mid,l=1,r=n; while(l<=r){ mid=(l+r)/2; if(a[mid]==x){ cout<<mid; return 0; }else if(a[mid]>x){ r=mid-1; }else{ l=mid+1; } } cout<<"-1"; return 0; }
阿兹卡班
#include <bits/stdc++.h> using namespace std; int Search(int a[], int n, int key) { int low = 1; int high = n; while (low <= high) { int mid = low + ((high - low) / 2); if (key == a[mid]) return mid; else if (key < a[mid]) high = mid - 1; else low = mid + 1; } return -1; } int main() { int n, b; cin >> n; int s[n+1]={0}; for (int i = 1; i <= n; i++) { cin >> s[i]; } cin >> b; cout << Search(s, n, b) << endl; }
acgogogo
《 能 做 就 行 》
毛奕程
一个屑水作
嘉陵江的晚风.
#include<bits/stdc++.h> using namespace std; int a[110]; int main(){ int n,x; cin >> n; for(int i = 1;i <= n;i++){ cin >> a[i]; } cin >> x; int left = 1,right = n; while(left <= right){ int mid = (left + right) / 2; if(a[mid] == x){ cout << mid; return 0; }else if(a[mid] > x){ right = mid - 1; }else{ left = mid + 1; } } cout << -1; return 0; }
恶龙世纪
不会用二分查找,但是仍然通过了。 n = int(input()) a = input().split() x = input() _ = 0 for i in a: _ += 1 if i == x: print(_) break else: print(-1)
199****3147
zsy
#include<bits/stdc++.h> using namespace std; int a[105],n,l,r,mid,b; int main(){ cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; } cin>>b; r=n,l=1; for(int i=1;i<=n;i++) { mid=(r+l)/2; if(a[mid]>=b)r=mid+1; else l=mid-1; if(l>r)break; } if(a[mid]==b)cout<<mid; else cout<<-1; }
182****3301
枫岚
#include<bits/stdc++.h>//万能头文件 using namespace std;//命名空间 int n,L,R,mid,a[105],x;//定义变量 int main(){//主函数 cin>>n;//输入n for(int i=1;i<=n;i++){ cin>>a[i];//循环输入数组 } cin>>x;//输入x L=1,R=n;//赋值L,R while(L<=R){//条件L<=R mid=(L+R)/2;//算出中间值,公式:mid=(L+R)/2 if(a[mid]==x){//如果中间数字相等,输出下标,return cout<<mid; return 0; } else if(a[mid]<x){//由于是升序数列,如果中间数字<x,那么L=mid+1 L=mid+1; } else if(a[mid]>x){//如果中间数字>x,那么R=mid-1 R=mid-1; } } cout<<"-1";//如果没有数字=x,那么输出-1 return 0; }
shenzhangzheng
加油吧 ^ v ^
似懂非懂的死变态
🎈🎈🎈🎈🎈🎈🎈🎈
共45条