所谓回文数,指一个正整数,从左往右依次输出各数位与从右往左依次输出各数位是相同的,例如:12321是一个回文数,而12320不是回文数 输入一个double型整数,如123454321,判断是否为回文数。 【输入形式】一行一个非负整数 【输出形式】YES 或 NO 【样例输入】12321 【样例输出】YES blob.png 【样例说明】12321是一个回文数 【评分标准】5组测试用例,每组2分,共计10分 #include <stdio.h> #include <math.h> int is_huiwen(long x){ int a[100],i=0,p;//此题请关注注意a[]数组的使用,x的数位将保留在数组中 while(x){ ;//将数位保存在数组,请注意下标的变化 x/=10; } for(p=0;p<(i-1)/2;p++) if( ) return 0;//判断数组元素是否相等 return 1; } int main(){ long x; scanf("%ld",&x); if(is_huiwen(x)) printf("YES"); else printf("NO"); return 0; }
时间: 2023-12-25 07:02:54 浏览: 135
这里给出一份代码,供参考:
```c
#include <stdio.h>
#include <string.h>
int main() {
double n;
scanf("%lf", &n);
char str[100];
sprintf(str, "%.0lf", n);
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
if (str[i] != str[len - i - 1]) {
printf("NO");
return 0;
}
}
printf("YES");
return 0;
}
```
这个程序的思路是将输入的 double 类型的数转换为字符串,然后判断这个字符串是不是回文串。由于 double 类型的数可能很大,因此我们需要使用 `sprintf` 函数将其转换为字符串,然后再进行判断。
阅读全文