题目1074:对称平方数
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:7383
解决:3351
-
题目描述:
-
打印所有不超过n(n<256)的,其平方具有对称性质的数。如11*11=121
-
输入:
-
无任何输入数据
-
输出:
- 输出具有题目要求的性质的数。如果输出数据不止一组,各组数据之间以回车隔开。
-
样例输入:
样例输出:
问题连链接:http://ac.jobdu.com/problem.php?pid=1074
问题分析:
如何判断一个数是否为对称数?等到数字的长度,然后从头和尾开始比较。
代码:
#include <iostream>
#include<stdio.h>
#define N 256
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
bool isSymmetry(int x){
//判断x是否具有对称性
int s1[5];
int size=0;
while(x != 0){
s1[size++]=x%10;
x/=10;
}
for(int i=0,j=size-1;i<size;i++,j--){
if(s1[i] != s1[j]){
return false;
}
}
return true;
}
int main(int argc, char *argv[]) {
for(int i=0;i<N;i++){
if(isSymmetry(i*i) == true ){
cout<<i<<" "<<i*i<<endl;
}
}
return 0;
}