任意の自然数nに対して
0
、次いで3を乗じての最初の数字を、加算、および1が新たな自然数Nに追加される
1
、次にN
1
この動作が繰り返され、それはN新しい自然数を生成することが可能である
2
、......、この動作は複数回繰り返され、演算結果が、最終的に固定された数Nを取得
Kは
、「トラップ」のような数に落ちます。
この問題は、「トラップ」プロセスに秋を与えているの自然数の入力が必要です。
入力フォーマットは:
行の自然数を与えるN
0
(N
0
<30000)。
出力フォーマット:
N入力の場合
0
、罠に陥るのプログレッシブ出力ステップ。N i行目は私がトラップに陥るステップに記載され、形式は:I:N
I
(I≧1)。自然数のステップの結果が得られた場合にN
K
前のステップNにおける(K≧1)
K.、1-
同じであり、出力が停止されます。
サンプル入力:
5
出力例:
1時16分
2:22
3時13
4時13分
#include <stdio.h>
int sum(int num);
int main()
{
int n,b=0,i=0;
scanf("%d",&n);
while ( n!=b ){
b=n;
n=sum(n)*3+1;
i++;
printf("%d:%d\n",i,n);
}
return 0;
}
int sum(int num){
int n2,i;
for(i=0,n2=0;i<5;i++){
n2 += num%10;
num /= 10;
}
return n2;
}
知識ポイント:計算が複雑になり、より明確にのみ機能を書いて検討してください。