使用C语言实现不同进制下的回文数检测

   2024-10-20 3550
核心提示:#include stdio.h// 将十进制数转换为指定进制的字符串char* convertToBase(int num, int base) {static char buffer[32];char d

#include <stdio.h>// 将十进制数转换为指定进制的字符串char* convertToBase(int num, int base) {    static char buffer[32];    char digits[] = "0123456789ABCDEF";    int index = 0;    while (num > 0) {        buffer[index++] = digits[num % base];        num /= base;    }    buffer[index] = '\0';    return buffer;}// 检测一个字符串是否为回文数int isPalindrome(char* str) {    int length = strlen(str);    for (int i = 0; i < length / 2; i++) {        if (str[i] != str[length - i - 1]) {            return 0;        }    }    return 1;}int main() {    int num;    printf("请输入一个十进制数:");    scanf("%d", &num);    for (int base = 2; base <= 16; base++) {        char* str = convertToBase(num, base);        if (isPalindrome(str)) {            printf("%d进制下的回文数为:%s\n", base, str);        }    }    return 0;}

这段代码首先实现了一个将十进制数转换为指定进制的字符串的函数convertToBase,然后实现了一个检测一个字符串是否为回文数的函数isPalindrome。在main函数中,用户输入一个十进制数,然后程序将该数转换为2到16进制的字符串,并检测是否为回文数,若是回文数则输出。

 
举报打赏
 
更多>同类网点查询
推荐图文
推荐网点查询
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号