c语言中的回文数算法怎么写

823
2024/1/19 14:18:41
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在C语言中,判断一个数是否是回文数的常见算法是将该数转换为字符串,然后判断该字符串是否是回文字符串。下面是一个示例代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int isPalindrome(int num) {
    char str[20];
    sprintf(str, "%d", num); // 将整数转换为字符串

    int len = strlen(str);
    for (int i = 0; i < len/2; i++) {
        if (str[i] != str[len-i-1]) {
            return 0; // 不是回文数
        }
    }
    return 1; // 是回文数
}

int main() {
    int num;
    printf("请输入一个整数:");
    scanf("%d", &num);

    if (isPalindrome(num)) {
        printf("%d是回文数\n", num);
    } else {
        printf("%d不是回文数\n", num);
    }

    return 0;
}

在上述代码中,通过sprintf函数将输入的整数转换为字符串,然后使用一个循环遍历字符串的前半部分,判断是否与对应的后半部分相等。如果有任何不相等的字符,则该数不是回文数。如果循环结束后没有找到不相等的字符,那么该数就是回文数。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: c语言将一组数从大到小排列