c - 在 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--);
}
请给我最简单的方法来找到它。我需要一个易于理解的程序。
解决方案
你到底想做什么?
1.检查一个数字是否是回文。
2.寻找下一个最小/更大的回文。
3.找到一个数字的反面。
注意:回文数是从两端读取相同的数字。
例如:
12321 -> palindrome number
23143 -> not palindrome number
7 -> palindrome number
要检查一个数字是否是回文,首先找到该数字的反转,如果反向等于该数字,则该数字是回文,否则不是。
推荐阅读
- c# - C# 使用 2 个线程将数组值增加 1?
- django - AWS CodeStar/Pipeline 和 Python (Django/Flask) 的建议
- linux - 使用 F# 替代 Linux shell 脚本
- regex - 使用 PowerShell 从记事本中提取日期和时间戳
- cdi - 在 Quarkus 服务中找不到 SessionScoped bean
- oracle - 如何使用 SQL 开发人员将 Oracle 表查询数据放入多个 Excel 工作表?
- android - Android中的等效EKCalendarChooser
- python - 在 AWS Lambda 上使用 Python 中的 Pdf2img 将 pdf 页面转换为图像
- scala - 如何在 scala 隐式解析中使用 Any?
- android - 使用 ConstraintLayout 进行绝对定位