試了各種測資還是試不出來甚麼時候會出問題
拜託各位幫忙
#include<stdio.h>
int main( void )
{
int a, b;
while(scanf("%d %d", &a, &b)!=EOF){
int i=0;
while(b>0){
b-=a;
a++;
i++;
}
printf("%d\n", i);
}
return 0;
}
試了各種測資還是試不出來甚麼時候會出問題
拜託各位幫忙
#include
int main( void )
{
int a, b;
while(scanf("%d %d", &a, &b)!=EOF){
int i=0;
while(b>0){
b-=a;
a++;
i++;
}
printf("%d\n", i);
}
return 0;
}
while(b>0)改成while(b>=0)看看
試了各種測資還是試不出來甚麼時候會出問題
拜託各位幫忙
#include
int main( void )
{
int a, b;
while(scanf("%d %d", &a, &b)!=EOF){
int i=0;
while(b>0){
b-=a;
a++;
i++;
}
printf("%d\n", i);
}
return 0;
}
while(b>0)改成while(b>=0)看看
謝謝 還是沒有過但是問題從line2變成line7了
謝謝 還是沒有過但是問題從line2變成line7了
參考:https://zerojudge.tw/ShowThread?postid=28282&reply=0
我猜b有可能是負數的情況
所以b < 0就不會執行迴圈
所以迴圈要至少執行一次(先執行再判斷)(用數第一次的去跟b比才是對的)
所以你的程式碼
while(b>=0){
b-=a;
a++;
i++;
}
只要改成
do{
b-=a;
a++;
i++;
}
while(b>=0);
就好
謝謝 還是沒有過但是問題從line2變成line7了
參考:https://zerojudge.tw/ShowThread?postid=28282&reply=0
我猜b有可能是負數的情況
所以b < 0就不會執行迴圈
所以迴圈要至少執行一次(先執行再判斷)(用數第一次的去跟b比才是對的)
所以你的程式碼
while(b>=0){
b-=a;
a++;
i++;
}
只要改成
do{
b-=a;
a++;
i++;
}
while(b>=0);
就好
了解 感謝你!