【PTA】7-31番号はトラップ(15分)に分類

任意の自然数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;
}

知識ポイント:計算が複雑になり、より明確にのみ機能を書いて検討してください。

公開された48元の記事 ウォンの賞賛0 ビュー311

おすすめ

転載: blog.csdn.net/weixin_46399138/article/details/105389492