首页 > 解决方案 > 在 C 中使用递归的回文数

问题描述

我只是想在 C 中使用递归找到一个回文数。但是我犯了一个错误,那个错误我不知道。每次它给我的结果都是0。

这是源代码:


#include<stdio.h>
#include<conio.h>

int pal(int num);

void main()
{
    int num=625,res=0;
    res=pal(num);
    printf("%d",res);
    getch();
}

int pal(int num)
{
    int ans=0,rem=0,index=0;
    index=log10(num);
    if(index==0)
    {
        return ;
    }

    index--;

    rem=num%10;
    ans=ans*10+rem;
   return pal(index--);   
}

请给我最简单的方法来找到它。我需要一个易于理解的程序。

标签: crecursionpalindrome

解决方案


你到底想做什么?

1.检查一个数字是否是回文。

2.寻找下一个最小/更大的回文。

3.找到一个数字的反面。

注意:回文数是从两端读取相同的数字。

例如:

         12321 -> palindrome number
         23143 -> not palindrome number
         7     -> palindrome number

要检查一个数字是否是回文,首先找到该数字的反转,如果反向等于该数字,则该数字是回文,否则不是。


推荐阅读