#29005: 為什麼不過TAT


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

學校 : 不指定學校
編號 : 178973
來源 : [118.150.147.45]
最後登入時間 :
2022-03-22 00:58:45
a215. 明明愛數數 | From: [118.150.147.45] | 發表日期 : 2022-01-21 21:01

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

拜託各位幫忙

#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-05-16 17:59:54
a215. 明明愛數數 | From: [123.110.9.144] | 發表日期 : 2022-01-21 21:08

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

拜託各位幫忙

#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
a215. 明明愛數數 | From: [118.150.147.45] | 發表日期 : 2022-01-21 21:26

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

拜託各位幫忙

#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-05-16 17:59:54
a215. 明明愛數數 | From: [123.110.9.144] | 發表日期 : 2022-01-21 22:57

謝謝 還是沒有過但是問題從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
a215. 明明愛數數 | From: [118.150.147.45] | 發表日期 : 2022-01-22 00:23

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

就好


了解 感謝你!

 
ZeroJudge Forum