题干
在数学里面,有一种数字正着读和反着读结果都一样,我们把这种数称为回文数。如果一个回文数,它同时还是某一个数的平方,这样的数字叫做平方回数。
本题要求输出小于正整数N的所有平方回数。
(注:个位数都是回文数。)
函数接口定义:
void Squared_Symmetry ( const int N );
其中 N 是用户传入的参数。 N 的值不超过int的范围。
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
#include <stdio.h>
void Squared_Symmetry ( const int N );
int main()
{
int N;
scanf("%d", &N);
Squared_Symmetry(N);
return 0;
}
/* 请在这里填写答案 */
输入样例:
在这里给出一组输入。例如:
1000
输出样例:
在这里给出相应的输出。例如:
676 484 121 9 4 1
#include<math.h>
int isPalindrome(int num) {
int originalNum = num;
int reversedNum = 0;
while (num > 0) {
int remainder = num % 10;
reversedNum = reversedNum * 10 + remainder;
num /= 10;
}
return originalNum == reversedNum?1:0;
}
void Squared_Symmetry(const int N){
double n=N;
int temp,i;
n=sqrt(n);
temp=(int) n;
for(i=N;i>=1;i--){
n=i;
n=sqrt(n);
temp=(int) n;
if(n-temp==0&&isPalindrome(i)){
if(i==1){
printf("%d\n",i);
return ;
}
printf("%d ",i);
}
}
}