//第七届蓝桥杯软件类省赛真题-C-A-2_平方怪圈
/*
平方怪圈
如果把一个正整数的每一位都平方后再求和,得到一个新的正整数。
对新产生的正整数再做同样的处理。
如此一来,你会发现,不管开始取的是什么数字,
最终如果不是落入1,就是落入同一个循环圈。
请写出这个循环圈中最大的那个数字。
请填写该最大数字。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
*/
/*【解题思路】
解法:模拟运算输出,然后找出最大的值
答案:
145
*/
#include<iostream>
using namespace std;
int operation(int num)
{
int sum = 0;
do{
sum += (num%10)*(num%10);
num /= 10;
}while(num);
return sum;
}
int main()
{
int n;
cin>>n;
while(1){
cout<<n<<endl;
n = operation(n);
}
return 0;
}