#27569: 為甚麼會錯?謝謝


cjw931027@gmail.com (noob)


#include <iostream>

using namespace std;

 

int main(){

int ans=1,x,y;

while(cin>>x>>y){

int sum=x;

for(int i=x+1;i<y;i++){

sum+=i;

if(sum<=y){

ans+=1;

}

 

else if(sum>=y){

cout<<ans<<endl;

break;

}

}

}

 

return 0;

}

#27574: Re:為甚麼會錯?謝謝


cges30901 (cges30901)


#include

using namespace std;

 

int main(){

int ans=1,x,y;

while(cin>>x>>y){

int sum=x;

for(int i=x+1;i<y;i++){

sum+=i;

if(sum<=y){

ans+=1;

}

 

else if(sum>=y){

cout<<ans<<endl;

break;

}

}

}

 

return 0;

}

你的程式有些問題:

1. 你的ans沒有在每筆測資間重設

2. i<y有問題,因為i有可能大於y,你可以直接刪掉

3. 題目要求數字的總和會超過 m,所以最後一個數字也算一個

4. 你沒有考慮到n>m的狀況(應該要輸出1才對)

#27582: Re:為甚麼會錯?謝謝


cjw931027@gmail.com (noob)


請問第二個i<y直接刪掉是甚麼意思



#27587: Re:為甚麼會錯?謝謝


cges30901 (cges30901)


請問第二個i<y直接刪掉是甚麼意思




n有可能小於零,這時i有可能大於y,你的i<y會造成迴圈提早結束,所以應該要刪掉