用多种方法判断回文数字
时间: 2024-10-21 21:11:48 浏览: 34
回文数字判断.zip_Java编程_Java_
回文数是指正读反读都一样的数字,比如121、1221等。在C语言中,有几种常见的方法可以用来判断一个整数是否为回文:
**方法一:字符串比较**
1. 将数字转换成字符串,然后从两端开始逐个字符比较,如果相等则继续,不等则返回false。
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(int num) {
char str[100];
sprintf(str, "%d", num);
int len = strlen(str);
for (int i = 0; i < len / 2; ++i) {
if (str[i] != str[len - 1 - i]) {
return 0;
}
}
return 1;
}
```
**方法二:直接数字比较**
2. 另一种方法是不使用字符串,而是从低位到高位(或从高位到低位)直接比较每一位数字,如果不同则立即返回false。
```c
int isPalindromeDirect(int num) {
while (num != 0) {
int reminder = num % 10;
if (reminder != num / 10) {
return 0;
}
num /= 10;
}
return 1;
}
```
**方法三:递归法**
3. 使用递归来检查数字的奇偶性和中间位子是否相同,如果都是回文则继续递归处理半截数字。
```c
int isPalindromeRecursive(int num, int start) {
if (start >= start) {
return num == 0 || num / 10 == start;
} else {
return num / 10 == start || isPalindromeRecursive(num / 10, start * 10 + (num % 10));
}
}
int isPalindrome(int num) {
return isPalindromeRecursive(num, 0);
}
```
阅读全文