寻找300以内(大于0)的所有的对称回文数并输出。回文数是指某数与其反序数相等,如5. 131、 1551、 345676543.
对称回文数指某数与其平方都是回文数。例如,n=11时,, 112=121; n=111时,
1112=12321.
① 编写函数int palindrome(long n),判断n是否回文数,如是返回1,否则返回0。
② 在main西数中遍历300以内的数,寻找对称回文数并输出。
望采纳
#include<stdio.h>
int palindrome(long n) {
int sizes[50] = {0};
int len = 0;
while(n > 0) {
sizes[len++] = n%10;
n = n / 10;
}
int i = 0;
int j = len - 1;
while(i < j) {
if (sizes[i] != sizes[j]) {
return 0;
}
i++;
j--;
}
return 1;
}
int main (){
for(long x = 1; x <= 300; x++) {
if (palindrome(x)) {
printf(" %ld ", x);
}
}
}
#include <stdio.h>
int palindrome(long n) {
long temp = n, rev = 0;
while (temp != 0) {
rev = rev * 10 + temp % 10;
temp /= 10;
}
if (rev == n) {
return 1;
}
return 0;
}
int main() {
for (long i = 1; i <= 300; i++) {
long square = i * i;
if (palindrome(i) && palindrome(square)) {
printf("%ld\n", i);
}
}
return 0;
}
#include <stdio.h>
int main()
{
int count = 0;
for (int i = 0; i < 10000; i++)
{
int tmp = i;
int result = 0;
while (tmp != 0)
{
result = result * 10 + tmp % 10;
tmp = tmp / 10;
}
if (result == i)
{
printf("%d\t", result);
count++;
if (count % 10 == 0)
printf("\n");
}
}
return 0;
}