平方怪圈
如果把一个正整数的每一位都平方后再求和,得到一个新的正整数。
对新产生的正整数再做同样的处理。
如此一来,你会发现,不管开始取的是什么数字,
最终如果不是落入1,就是落入同一个循环圈。
请写出这个循环圈中最大的那个数字。
以下为原码:
#include <stdio.h>
int main(int argc, char *argv[])
{
int num = 0;
int sum = 0;
int a[100];
int arr = 0;
int i = 0;
int j = 0;
int max = 0;
scanf("%d",&num);
while(1)
{
sum = 0;
while(num)
{
sum += (num%10) * (num%10);
num /= 10;
}
num = sum;
if (1 == num)
{
printf("1\n");
break;
}
else
{
a[arr] = num;
for(i=0; i<arr; i++)
{
if(a[arr] == a[i])
{
for(j=i; j<arr; j++)
{
if(max < a[j+1])
{
max = a[j+1];
}
}
printf("%d",max);
return 0;
}
}
arr++;
}
}
return 0;
}