今天遇到了一道C语言中等题吧,难在数据量开的贼大,必须用到long long才能过案例,然测试点也比较夸张,总共五个测试点,博主小菜鸡只过了三个,两个未过的都是自守数输出到9376,其实自守数不止到9376,应该是没在规定时间内跑完,希望有大佬指点。
更新:评论区说x,i改成long long能满足所有案例。
题目描述:若一个正整数a满足条件 a^2 的尾数等于a,则称a为自守数,例如:
25^2=625 、76^2=5776 、9376^2=87909376 都是自守数。
编写程序,求小于等于n的所有自守数。
输入:从键盘随机输入一个正整数n(<10000000)。
输出:输出小于n的所有自守数,每个数之间以一个西文空格间隔。
样例1:
输入:10
输出:1 5 6
样例2:
输入:100
输出:1 5 6 25 76
题解:
#include<stdio.h>
#include<stdbool.h>
bool check(long