[ACM ] Q100 The 3n + 1 problem

看板C_and_CPP作者 (ninE)時間13年前 (2011/07/02 18:30), 編輯推噓0(003)
留言3則, 3人參與, 最新討論串1/1
板上有很多這題的討論 不過我還是不知道為什麼我會得到WA 因為我的輸出結果看起來是正確的 想請問是否有哪邊有錯誤? 以下是我的程式碼: ----------------------------------------------- #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int i=0,j=0,n=0,max=0,count=0; while(cin >> i >> j) { cout<<i<<" "<<j<<" "; if(i>j) //排序i和j { int temp=i; i=j; j=temp; } if(i<0||j>=1000000) //判斷是否大小在0~1000000內 continue; for(int x=i;x<=j;++x) //開始處理 { n=x; count=0; for(;;) { count++; if(n==1) break; if(n%2==0) n/=2; else n=n*3+1; } if(count>max) max=count; } cout<<max<<"\n"; //輸出結果 } system("PAUSE"); return EXIT_SUCCESS; } -------------------------------------------------------- 雖然是老梗題目 不過實在是沒有頭緒錯在哪邊 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.118.44.38

07/02 18:32, , 1F
input: 10 1 => output 10 1 20
07/02 18:32, 1F
連帶內文更正了 但是上傳繳交後還是WA

07/02 20:03, , 2F
system("pause");????
07/02 20:03, 2F

07/02 21:01, , 3F
似乎是你的max沒有歸零的動作,所以重新輸入就會錯了
07/02 21:01, 3F
終於AC了 感謝1F和3F的幫忙!! 沒想到會錯在這些小細節 再次感謝! ※ 編輯: ninEEE 來自: 122.118.44.38 (07/02 21:30)
文章代碼(AID): #1E3lD1F- (C_and_CPP)