这道题我在考试过程中本来一开始就写出来了,结果半天都没出来结果,最后才发现,判断是否为一个整数的平方时,我从1000快开始了,也就意味着 从7位数开始,所以没有出现任何结果。后来改为100到1000就成功运行并对了。当然,从317到1000也是很好的。 以下是我的代码:
#include<iostream> using namespace std; int main() { int n = 0; int fun(long *); long result[100000], *p; p = result; fun(p); cout << fun(p) << endl; while (result[n] != '\0') { cout << result[n] << endl; n++; } return 0; } int fun(long *x) { int k = 0, j,geshu=0; int a, b, c, d, e, f; long m; for (long i = 100000; i < 999999; i++) { a = i / 100000; b = (i % 100000) / 10000; c = (i % 10000) / 1000; d = (i % 1000) / 100; e = (i % 100) / 10; f = (i % 10); m = (100000 * f + 10000 * e + 1000 * d + 100 * c + 10 * b + a); if (i == m) for(int j=100;j<1000;j++) if(i==j*j){ *x = i; x++; geshu++; } } return geshu; }