题目
描述:
打印所有不超过256,其平方具有对称性质的数。如2,11就是这样的数,因为2*2=4,11*11=121。
输入描述:
无任何输入数据
输出描述:
输出具有题目要求的性质的数。如果输出数据不止一组,各组数据之间以回车隔开。
题解
具有对称性质的数实际上就是自身等于其反序数的数,例如1221。所以可以直接使用之前求反序数的函数,判断一个数是否等于其反序数,相等就输出,不等直接跳过判断下一个数。
#include <stdio.h> int Reverse(int x) { int sum = 0; while(x != 0) { sum *= 10; sum += x%10; x /= 10; } return sum; } int main() { for(int i = 0; i <= 256; i++) { if(i*i == Reverse(i*i)) { printf("%d\n",i); } } return 0; }