【问题描述】
如果把一个正整数的每一位都平方后再求和,得到一个新的正整数。 对新产生的正整数再做同样的处理。
如此一来,你会发现,不管开始取的是什么数字, 最终如果不是落入1,就是落入同一个循环圈。
请写出这个循环圈中最大的那个数字。
【答案提交】
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
题解:
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n;
cin >> n;
for (int j = 0; j < 100; j ++) // 假设循环 100 次
{
int ans = 0;
while(n)
{
int t = n % 10;
ans += t * t;
n /= 10;
}
cout << ans << endl;
n = ans; // 新的正整数
}
return 0;
}
答案:145
如果感觉这篇文章对你有帮助的话,不妨点一个赞,十分感谢(✪ω✪)。
printf(“点个赞吧!”);
cout <<“点个赞吧!”;
System.out.println(“点个赞吧!”);
↓↓↓