#6916: [請求協助]一直NA 請問是哪裡有錯


forever41200 (forever41200)

學校 : 臺北市立建國高級中學
編號 : 25724
來源 : [140.113.136.217]
最後登入時間 :
2015-04-07 18:35:13
d732. 二分搜尋法 | From: [118.168.57.146] | 發表日期 : 2012-08-19 12:34

#include<iostream>
using namespace std;
int binsrch(int num[], int len, int target){
int lower = 0;
int upper = len-1;
int mid=0;
while(lower <= upper){
mid = (lower + upper) / 2;
if(target > num[mid])
lower = mid + 1;
else if(target < num[mid])
upper = mid - 1;
else
return mid + 1;
}
return mid;
}
int main(){
int len,query,i;
cin>>len>>query;
int num[len];
int target[query];
int ans[query];
for(i=0;i<len;i++)
cin>>num[i];
for(i=0;i<query;i++){
cin>>target[i];
ans[i] = binsrch(num,len,target[i]);
}
for(i=0;i<query;i++)
cout<<ans[i]<<"\n";
}
 
#6973: Re:[請求協助]一直NA 請問是哪裡有錯


saitor362320 (Kira Yamato)

學校 : 國立臺灣海洋大學
編號 : 9939
來源 : [140.121.215.219]
最後登入時間 :
2014-09-15 21:28:39
d732. 二分搜尋法 | From: [175.181.131.112] | 發表日期 : 2012-09-03 23:05

#include
using namespace std;
int binsrch(int num[], int len, int target){
int lower = 0;
int upper = len-1;
int mid=0;
while(lower <= upper){
mid = (lower + upper) / 2;
if(target > num[mid])
lower = mid + 1;
else if(target < num[mid])
upper = mid - 1;
else
return mid + 1; //這是"找到", 你要直接回傳mid
}
return mid; //這是"找不到", 你要回傳-1或0
}
 
#6974: Re:[請求協助]一直NA 請問是哪裡有錯


saitor362320 (Kira Yamato)

學校 : 國立臺灣海洋大學
編號 : 9939
來源 : [140.121.215.219]
最後登入時間 :
2014-09-15 21:28:39
d732. 二分搜尋法 | From: [175.181.131.112] | 發表日期 : 2012-09-03 23:09


int main(){
int len,query,i;
cin>>len>>query;
int num[len];
int target[query];
int ans[query];
for(i=0;i
cin>>num[i];
for(i=0;i
cin>>target[i];
ans[i] = binsrch(num,len,target[i]);
}
for(i=0;i
cout<
}

不能這樣寫...你要先初始化
 
ZeroJudge Forum