题目描述
打印所有不超过n(n<256)的,其平方具有对称性质的数。如11*11=121。
输入
无
输出
每行一个数,表示对称平方数。
样例输入
样例输出
提示 [+]
*** 提示已隐藏,点击上方 [+] 可显示 ***
来源
/*********************************
* 日期:2013-2-15
* 作者:SJF0115
* 题号: 天勤OJ 题目1402: 对称平方数
* 来源:http://acmclub.com/problem.php?id=1402
* 结果:AC
* 来源:北京理工大学计算机专业2002年研究生复试上机试题
* 总结:
**********************************/
#include <stdlib.h>
#include <stdio.h>
int Num[10];
int main()
{
const int N = 256;
int i,j,index,flag,n;
for(i = 1;i < N;i++){
n = i * i;
index = 0;
flag = 0;
//
while(n){
Num[index++] = n % 10;
n = n / 10;
}
//判断其平方具有对称性质
for(j = 0;j <= index/2;j++){
if(Num[j] != Num[index-j-1]){
flag = 1;
break;
}
}
//具有对称性
if(flag == 0){
printf("%d\n",i);
}
}
return 0;
}
/*********************************
* 日期:2013-2-15
* 作者:SJF0115
* 题号: 天勤OJ 题目1402: 对称平方数
* 来源:http://acmclub.com/problem.php?id=1402
* 结果:AC
* 来源:北京理工大学计算机专业2002年研究生复试上机试题
* 总结:atoi 将字符串转换成整数
**********************************/
#include <stdlib.h>
#include <stdio.h>
#include<string.h>
int main()
{
int i,t,n,index;
const int N = 256;
char str[10];
for(i=1; i < N; i++)
{
index = 0;
n = i*i;
while(n)
{
str[index++] = n % 10 + '0';
n = n / 10;
}
str[index]='\0';
//判断其平方具有对称性质
if(i*i == atoi(str))
{
printf("%d\n",i);
}
}
return 0;
}