[ACM ] 100 3n+1 problem

看板C_and_CPP (C/C++)作者 (Arim5566)時間16年前 (2009/03/05 22:23), 編輯推噓1(104)
留言5則, 2人參與, 最新討論串1/1
今天開始寫ACM的題目了..昨天才剛注冊完= = 第一個就寫編號100的3n+1 problem 我輸入跟輸出格式都跟他給的sample input/output是一樣的,答案也都一樣 可是每次submit之後,回去看我的紀錄他都會說我的答案錯誤 冏... 以下是我的code.. #include<iostream> using namespace std; int main() { int n[4],m[4],c=1,max=0,k,x,z,i,a[4],b[4]; //利用max抓出最大值,c用來 //紀錄cycle length for(i=0;i<=3;i++) //輸入四組數字 { cin>>n[i]; cin>>m[i]; a[i]=n[i]; //利用a[i]跟b[i]紀錄一開始的輸入 b[i]=m[i]; if(n[i]>m[i]) //如果第一個數字比較大,則交換 { z=n[i]; n[i]=m[i]; m[i]=z; } } for(i=0;i<=3;i++) { for(x=n[i];x<=m[i];x++) { k=x; //把x的值指定給k,不隨便更動迴圈內容 while(k!=1) //當k等於1時就跳出去 { if(k%2==0) { k=k/2; c++; } else { k=k*3+1; c++; } } if(c>max) { max=c; } c=1; //重新算下一個數字的cycle length,c歸1,因為要先包含自己本身 } cout<<a[i]<<' '<<b[i]<<' '<<max<<'\n'; //一個範圍算完之後,印出結果 max=0; //抓到最大值之後,max歸0重新計算下一個範圍 } return 0; } Sample Input 1 10 100 200 201 210 900 1000 Sample Output 1 10 20 100 200 125 201 210 89 900 1000 174 他的格式以及答案跟我執行出來的結果是一樣的...可是不知道為什麼Judge會說我錯.. 有好心的大大可以幫小弟解答嗎@@ -- ════════════════════════════════════ 你曾經看過流星雨嗎? ▃▃ kyc 那是非常美麗的景象,虛幻的光芒,如人一生。 。  / 。 神醉夢迷,我很喜歡這個名字... 。~▂▂ 。 / 下一刻,我將連自己也遺忘;但這一刻,是屬於我的!01010。 / φby ═══════════════════════ ||════kyc01010 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.138.236.174

03/05 22:27, , 1F
測試資料不是只有四組喔, 要用 while 迴圈來抓
03/05 22:27, 1F

03/05 22:28, , 2F
while (cin >> n >> m) { ... } 大概這樣吧
03/05 22:28, 2F

03/05 22:36, , 3F
另外, 你的 a[] 忘記賦值了=.=
03/05 22:36, 3F

03/05 22:37, , 4F
抱歉眼殘...上面的當作沒打XD
03/05 22:37, 4F

03/05 22:50, , 5F
今天遇到一樣的問題XDDDD,解決了 囧"
03/05 22:50, 5F
文章代碼(AID): #19h-16ar (C_and_CPP)
文章代碼(AID): #19h-16ar (C_and_CPP)