#29005: 為什麼不過TAT


110703046@g.nccu.edu.tw (hys)

學校 : 不指定學校
編號 : 178973
來源 : [118.150.147.45]
最後登入時間 :
2022-03-22 00:58:45

試了各種測資還是試不出來甚麼時候會出問題

拜託各位幫忙

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

}

#29006: Re:為什麼不過TAT


huacat1017 (huacat)

學校 : 國立臺中第一高級中學
編號 : 154887
來源 : [123.241.44.127]
最後登入時間 :
2024-06-16 21:31:39

試了各種測資還是試不出來甚麼時候會出問題

拜託各位幫忙

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

#29007: Re:為什麼不過TAT


110703046@g.nccu.edu.tw (hys)

學校 : 不指定學校
編號 : 178973
來源 : [118.150.147.45]
最後登入時間 :
2022-03-22 00:58:45

試了各種測資還是試不出來甚麼時候會出問題

拜託各位幫忙

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

#29008: Re:為什麼不過TAT


huacat1017 (huacat)

學校 : 國立臺中第一高級中學
編號 : 154887
來源 : [123.241.44.127]
最後登入時間 :
2024-06-16 21:31:39

謝謝 還是沒有過但是問題從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);

就好

#29009: Re:為什麼不過TAT


110703046@g.nccu.edu.tw (hys)

學校 : 不指定學校
編號 : 178973
來源 : [118.150.147.45]
最後登入時間 :
2022-03-22 00:58:45

謝謝 還是沒有過但是問題從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);

就好


了解 感謝你!