3-7掉入陷阱的数字(10 分)

对任意一个自然数N​0​​,先将其各位数字相加求和,再将其和乘以3后加上1,变成一个新自然数N​1​​;然后对N​1​​重复这种操作,可以产生新自然数N​2​​;……多次重复这种操作,运算结果最终会得到一个固定不变的数N​k​​,就像掉入一个数字“陷阱”。
本题要求对输入的自然数,给出其掉入“陷阱”的过程。
输入格式:在一行内给出一个自然数N​0​​(N​0​​<30000)。
输出格式:对于输入的N​0​​,逐行输出其掉入陷阱的步骤。第i行描述N掉入陷阱的第i步,格式为: i:N​i​​ (i≥1)。当某一步得到的自然数结果N​k​​(k≥1)与上一步N​k−1​​相同时,停止输出。

#include 
int main()
{
    int n,m,i=0,N;
    scanf("%d",&n);
    while(1)
    {	int sum = 0;
    	N=n;
    	while (n > 0)
    	{
        sum =sum + n % 10;
        n = n / 10;
        }
		sum=sum * 3 + 1;
        m = sum;
        i=i+1;
        printf("%d:%d\n", i, m);
        if (N == m) break;
        n = m;
    }
    return 0;
}

你可能感兴趣的:([搬]pta习题集,c++)