作者Arim (Arim5566)
看板C_and_CPP
標題[ACM ] 100 3n+1 problem
時間Thu Mar 5 22:22:52 2009
今天開始寫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
→ jason2506:測試資料不是只有四組喔, 要用 while 迴圈來抓 03/05 22:27
→ jason2506:while (cin >> n >> m) { ... } 大概這樣吧 03/05 22:28
→ jason2506:另外, 你的 a[] 忘記賦值了=.= 03/05 22:36
→ jason2506:抱歉眼殘...上面的當作沒打XD 03/05 22:37
推 cloudsan:今天遇到一樣的問題XDDDD,解決了 囧" 03/05 22:50