#27569: 為甚麼會錯?謝謝


cjw931027@gmail.com (JERRY)

學校 : 北京大学
編號 : 150971
來源 : [103.226.215.1]
最後登入時間 :
2023-09-14 21:26:12
a215. 明明愛數數 | From: [223.140.39.168] | 發表日期 : 2021-10-15 20:38

#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)

學校 : 不指定學校
編號 : 30877
來源 : [39.9.74.255]
最後登入時間 :
2024-10-14 22:20:08
a215. 明明愛數數 | From: [180.217.212.96] | 發表日期 : 2021-10-16 11:04

#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 (JERRY)

學校 : 北京大学
編號 : 150971
來源 : [103.226.215.1]
最後登入時間 :
2023-09-14 21:26:12
a215. 明明愛數數 | From: [223.136.209.45] | 發表日期 : 2021-10-17 14:24

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



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


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [39.9.74.255]
最後登入時間 :
2024-10-14 22:20:08
a215. 明明愛數數 | From: [27.247.42.174] | 發表日期 : 2021-10-17 21:53

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




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

 
ZeroJudge Forum