描述
打印所有不超过256,其平方具有对称性质的数。如2,11就是这样的数,因为2 *2=4,11 *11=121。
输入描述:
无任何输入数据
输出描述:
输出具有题目要求的性质的数。如果输出数据不止一组,各组数据之间以回车隔开。
直接枚举判断就可以了,注意要从0开始判断,0也符合题目要求。
代码如下:
#include<iostream>
using namespace std;
int reverse(int num){
int result=0;
while(num!=0){
int mod=num%10;
result=result*10+mod;
num/=10;
}
return result;
}
bool sym(int num){
int rev=0;
rev=reverse(num);
if(num==rev) return true;
else return false;
}
int main(){
for(int i=0;i<=256;i++){
int pow=i*i;
if(sym(pow)) cout<<i<<endl;
}
/* 更加直接的方式
for(int i=0;i<=256;i++){
if(i*i==reverse(i*i))
cout<<i<<endl;
}
*/
return 0;
}