当前位置:首页 » 编程语言 » c语言递归法判断回文数字
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言递归法判断回文数字

发布时间: 2023-02-24 23:53:09

⑴ 用c语言判断一个数是否是回文数(不用循环语句)


#include<stdio.h>
#include<string.h>
intfun(char*s,inti,intlen)
{
if(len/2==i)return1;
if(*(s+i)==*(s+len-i-1)){
returnfun(s,i+1,len);
}
return0;
}

intmain(){

chars[255];
scanf("%s",s);
intlen=strlen(s);
if(len<=1){
printf("输入字符串过短!");
}
elseif(fun(s,0,len))
{
printf("是回文");
}
else
{
printf("不是回文");
}

scanf("%s",s);
return0;
}

我用递归实现了

⑵ c语言,利用递归判断回文

#include <stdio.h>
#include <string.h>
int main(void)
{
char p[100] = {0};
int i, t, n;
gets(p);
n = t = strlen(p);
--n;
t /= 2;
for (i = 0; i<t; ++i)
{
if (*(p + i) != *(p + n - i))
{
break;
}
}
if (i >= t)
{
printf("YES ");
}
else
{
printf("NO ");
}
return 0;
}

⑶ 用递归判断字符串是否为回文串(C语言) 用递归判断字符串是否为回文串(C语言)

#include <stdio.h>
#define SIZE 50
int isPalindrome(char str[]);
int elementSize=0;
static int i=0;
int main()
{
int j=0,result;
char element,str[SIZE];
printf("请输入字符串,以回车结束:\n");
/*以下用循环结构读入字符数组的元素,防止了因字符串中含有空格而不能全部读入的情况*/
scanf("%c",&element);
while(element!='\n')
{
str[j]=element;
elementSize++;//记录了数组中已有元素的个数
j++;
scanf("%c",&element);
}

if(isPalindrome(str))
printf("该字符串是回文字符串\n");
else
printf("该字符串不是回文字符串\n");

// system("pause");
return 0;
}
/*函数功能:判断字符串是否为回文串*/
int isPalindrome(char str[])
{
/*把数组元素前后对应比较,即第一个元素与最后一个元素比较是否相等,依此类推*/
if(i>=elementSize-i-1)//说明是回文串
return 1;

else if(str[i]==str[elementSize-i-1])
{
i++;//i为全局静态变量
isPalindrome(str);
}

else //出现不相等的情况,说明不是回文串,返回0
return 0;
}

⑷ 用递归的方法实现判断回文字符c语言

#include<stdio.h>

#include<string.h>

int hw(char *s,int a,int b)

{return s[a]==s[b]&&(a>=b-2||a<b-2&&hw(s,a+1,b-1));

}

int main()

{ char s[300];

gets(s);

printf("%s%s是回文。 ",s,hw(s,0,strlen(s)-1)?"":"不");

return 0;

}

⑸ C语言编写程序判断回文数

要判断一个数n是否回文数,可以利用一个简单的循环就可以解决问题的。先保存好n的一个副本n1,初始化一个变量n2=0,然后每次取n1的末位数后添加到n2的末位,并把原n1的末位去掉。如此循环,当n1为0时循环结束,此时再判断,若n2==n,则n就是一个“回文数”了。
#include<stdio.h>
int main()
{ int n,n1,n2;
scanf("%d",&n);
n1=n;
for(n2=0;n1;n1/=10)
n2=n2*10+n1%10;
printf("%s\n",n2==n?"Yes":"No");
return 0;
}

⑹ 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);
}