C语言用递归判断数字是否为回文数不能使用数组 我自己编的那个太麻烦了
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/28 17:38:17
![C语言用递归判断数字是否为回文数不能使用数组 我自己编的那个太麻烦了](/uploads/image/z/1967638-22-8.jpg?t=C%E8%AF%AD%E8%A8%80%E7%94%A8%E9%80%92%E5%BD%92%E5%88%A4%E6%96%AD%E6%95%B0%E5%AD%97%E6%98%AF%E5%90%A6%E4%B8%BA%E5%9B%9E%E6%96%87%E6%95%B0%E4%B8%8D%E8%83%BD%E4%BD%BF%E7%94%A8%E6%95%B0%E7%BB%84+%E6%88%91%E8%87%AA%E5%B7%B1%E7%BC%96%E7%9A%84%E9%82%A3%E4%B8%AA%E5%A4%AA%E9%BA%BB%E7%83%A6%E4%BA%86)
C语言用递归判断数字是否为回文数不能使用数组 我自己编的那个太麻烦了
C语言用递归判断数字是否为回文数
不能使用数组 我自己编的那个太麻烦了
C语言用递归判断数字是否为回文数不能使用数组 我自己编的那个太麻烦了
首先求出数字的长度n,
然后判断第1位和第n位是否相等
第i位和第n+1-i位是否相等.对i循环
单独写一个函数求出这个数字第i位的大小
int GetI(int i,int number){
if(i==1)
return number%10;
return GetI(i-1,number/10);
}
我是菜鸟,自己琢磨的一个,见笑。
#include
int fac(int n)
{
int m,flag=1,i,j,t,s;
if(n>=0&&n<10)
return (1);
else
{
i=0;
m=n%10;
t=n;
while(t/10>...
全部展开
我是菜鸟,自己琢磨的一个,见笑。
#include
int fac(int n)
{
int m,flag=1,i,j,t,s;
if(n>=0&&n<10)
return (1);
else
{
i=0;
m=n%10;
t=n;
while(t/10>0)
{
t=t/10;
i++;
}
s=t;
for(j=1;j<=i;j++)
{
s=s*10;
}
if(m==t)
return(fac((n-m-s)/10));
else
return(0);
}
}
void main()
{
int a;
int flag;
scanf("%ld",&a);
flag=fac(a);
if(flag>0)
printf("yes");
else
printf("no");
}
收起