标签:
对任意一个自然数N0,先将其各位数字相加求和,再将其和乘以3后加上1,变成一个新自然数N1,
然后对N1重复这种操作,可以产生新自然数N2,多次重复这种操作运算,运算结果最终会得到一个
固定不变的数Nk,就像掉入一个数字“陷阱”。
对输入的自然数,给出其掉入“陷阱”的过程,
输入:一个自然数N(N<100000)
输出:多行内容,第i行是自然数N掉入陷阱的第i步,格式为: i:Ni,
当某个第k步的结果Nk与上一步相同时,停止输出。
样例输入:
5
样例输出:
1:16
2:22
3:13
4:13
两个注意点,一个是结束循环的条件:本循环的数与上一个循环数是否相等;
另一个调用函数更清晰直观。
c代码:
#include"stdio.h"
int main()
{
int F(int a);
int N0,i;
scanf("%d",&N0);
i=2;
int a[1000];
a[0]=N0;
a[1]=F(N0);
printf("%d:%d\n",i-1,a[1]);
while(a[i-1]!=a[i-2])
{
a[i]=F(a[i-1]);
i++;
printf("%d:%d\n",i-1,a[i-1]);
}
}
int F(int a)
{
int N,t;
N=0;
t=0;
do{
t=a%10;
N+=t;
a=a/10;
}while(a);
N=N*3+1;
return N;
}
标签:
原文地址:http://www.cnblogs.com/fgy1220/p/4455082.html