#18995: c++ 67%


710517@lzsh.tc.edu.tw (林東駿)

學校 : 不指定學校
編號 : 85638
來源 : [106.105.93.39]
最後登入時間 :
2020-08-15 13:01:39
a038. 數字翻轉 | From: [106.105.93.39] | 發表日期 : 2019-08-23 19:09

#include <iostream>
using namespace std;
main(){
long int in;
while (cin>>in){
if(in==0){
cout<<0;
}
while (in%10==0){
in=in/10;
}
while (in){
cout<<in%10;
in=in/10;
}
cout<<endl;
}
}

 
#18996: Re:c++ 67%


inversion (「我們所認識的可符香是個像天使的好女孩」之葉林 *Cries...)

學校 : 國立清華大學
編號 : 43537
來源 : [49.159.6.107]
最後登入時間 :
2022-05-28 19:29:12
a038. 數字翻轉 | From: [49.158.83.43] | 發表日期 : 2019-08-23 19:45

#include
using namespace std;
main(){
long int in;
while (cin>>in){
if(in==0){
cout<<0;
}
while (in%10==0){
in=in/10;
}
while (in){
cout<<in%10;
in=in/10;
}
cout<<endl;
}
}

您的程式若輸入 0 ,雖然會正確的輸出一個數字 0 ,但是卻會卡在接下來的迴圈而動彈不得(無限迴圈)。

因此推薦改為:

if (in == 0) {

    cout << 0;

    continue;

}

直接繼續輸入下一筆而不執行接下來的程式碼。或是改為

if (in == 0) {

    cout << 0;

}

else {

    ……

}

進到第一個 if 的陳述式就不會執行到下面的程式碼。

 

以上,希望有幫助到您。

 

 
ZeroJudge Forum