#include <stdio.h>
#define N 20
int isHui(int x){
int i=0,j=0,a[N];
while(x){
a[i++]=x%10;
j++;
x/=10;
}
for(i=0;i<=j/2;i++){
if(a[i]!=a[j-1-i])
return 0;
}
return 1;
}
int main(){
int n;
scanf("%d",&n);
if(isHui(n))
printf("这是回文数\n");
else
printf("这不是回文数\n");
return 0;
}
1768c-exercise-example30
参考方法:
#include<stdio.h>
#define N 20
int main(void)
{
int i,j;
int n;
int a[N];
printf("请输入数字:");
scanf("%d",&n);
for(j = 0; j < 5; j++)
{
a[j] = n%10;
n = n/10;
}
j = 0;
i = 4;
while(i < j)
{
if(a[i] != a[j])
{
printf("这不是回文数\n");
return 0;
}
j++;
i--;
}
printf("这是回文数\n");
return 0;
}
1767c-exercise-example30
判断是否是回文数,先将此数字按逆序重排,再与原先数值比较:
#include <stdio.h>
int main( )
{
int x;
int sum = 0;
printf("请输入一个整数:\n");
scanf("%d", &x);
for (int i = x; i > 0; i /= 10)
sum = sum * 10 + i % 10;
if(sum == x)
printf("%d 是回文数\n",x);
else
printf("%d 不是回文数\n", x);
}
1766c-exercise-example30
20位以内判断回文数
#include <stdio.h>
int main(void)
{
unsigned long long input;
int bit = 0;
int xar[20];
printf("请输入20位以内正整数: ");
scanf("%llu", &input);
unsigned long long x = input;
while (x > 0)
{
xar[bit++] = x % 10;
x /= 10;
}
for (int i = 0; i < bit / 2; i++)
{
if (xar[i] != xar[bit - i - 1])
{
printf("%llu : 不是一个 回文数 。\n", input);
break;
}
if (i == bit / 2 - 1)
printf("%llu : 是一个 回文数 。\n", input);
}
return 0;
}
1770c-exercise-example31
1769c-exercise-example30
参考方法:
1768c-exercise-example30
参考方法:
1767c-exercise-example30
判断是否是回文数,先将此数字按逆序重排,再与原先数值比较:
1766c-exercise-example30
20位以内判断回文数