自守数问题(C++)

题目:

自守数是指一个数的平方的尾数等于该数自身的自然数。
例如:
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<<"  "<

你可能感兴趣的:(备战蓝桥杯算法题,算法,数据结构,c++,青少年编程)