自守数是指一个数的平方的尾数等于该数自身的自然数。
例如:
25^2=625
76^2=5776
9376^2=87909376
请求出200000以内的自守数?
无
200000以内的自守数(包括0, 数之间用两个空格分开,末尾无空格)
输出:
0 1 5 6 25 76 376 625 9376 90625 109376
思路:
注意一下括号里面的内容,刚开始写的时候,就是因为弄了一个空格然后频繁出错
看好题目,自守数是例如1,5,6这样的数,咱们可以以要判断的数的位数,来取其平方的后几位数,从而判定是否为自守数,题目要求到200000(5个0),int一看就知道范围不够,所以直接使用long long。最后一个数不能用空格,所以我们可以先求出来第一个自守数,也就是0,在寿命输出的时候,把空格放在要输出的数的前面,这样最后一个数字就不会有空格。代码如下♛:
#include
#include
using namespace std;
//自守数
void check(long long n) {
long long m = n*n;
//n为一位数
if(0<=n&&n<10) {
if(n == m%10)
cout<<" "<