暴力解决,一个一个计算就可以了,应该是算枚举处理吧
#include<stdio.h> #include<math.h> int main(){ long long n; while(scanf("%lld",&n)!=EOF){ int count=0; for(int i=0;i<=n;i++){ long long t1=pow(i,2); long long t2=i; while(t2){ if(t1%10!=t2%10){ break; } t1=t1/10; t2=t2/10; } if(t2==0){ count++; } } printf("%d\n",count); } return 0; }