对称平方数
题目描述:
打印所有不超过256,其平方具有对称性质的数。如2,11就是这样的数,因为22=4,1111=121。
输入描述:
无任何输入数据
输出描述:
输出具有题目要求的性质的数。如果输出数据不止一组,各组数据之间以回车隔开。
示例
输入
无
输出
无
问题分析
这个问题的核心在于判断一个数是否为对称平方数,即其反序数是否为它本身,故本题的重点在于求一个数的反序,以下为求反序的方法整理:
int fanxu(int n){
int sum=0;
while(n){
sum=sum*10+n%10;
n=n/10;
}
return sum;
}
有了求反序的方法,这个题并不难,完整的代码如下:
#include
using namespace std;
int fanxu(int n){
int sum=0;
while(n){
sum=sum*10+n%10;
n=n/10;
}
return sum;
}
int main(){
for(int i=0;i<=256;i++){
if(i*i==fanxu(i*i)){
printf("%d\n",i);
}
}
return 0;
}