网易笔试题,请大神看一下。
#include<iostream>#include<vector> using namespace std; int query(vector<int> a,int len,int q){ int i; for(i=0;i<len;i++){ if(q>a[i]){ q=q-a[i]; } else{ return i+1; } } return i+1; } int bquery(vector<int> a,int len,int q){ int low=0; int high=len-1; while(low<high){ int mid=(low+high)/2; int sum=0; int i=0; while(i<=mid) { sum+=a[i]; i++; } if(q>sum){ low=mid+1; } else{ high=mid; } } return low+1; } int main(){ int n; int m; int len; vector <int> a; cin>>n; len=n; int k=0; while(k<n){ int s; cin>>s; a.push_back(s); k++; } cin>>m; while(m>0){ int q; cin>>q; cout<<bquery(a,len,q)<<endl; } return 0; }
#笔试题目##内推##C/C++##网易#