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

2024年11月16日 18:34
有3个网友回答
网友(1):


#include  
#include 
int fun(char *s, int i, int len)
{
if (len / 2 == i)return 1;
if (*(s + i) == *(s + len - i - 1)) {
return fun(s, i + 1, len);
}
return 0;
}

int main() {

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

scanf("%s", s);
return 0;
}

我用递归实现了

网友(2):

可以用栈和队列来判断
如果出栈顺序和队列顺序一样就是回文

网友(3):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include
#include
#defineMAX100
intreverse(chara[])
{
intn=strlen(a);
inti;
for(i=0;i{
if(a[i]!=a[n-i-1])
return0;
if(i==n-i-1)
return1;
}
}
intmain(){

chara[MAX];

while(scanf("%s",a)!=EOF)
{ if(reverse(a))
printf("YES\n");
else
printf("NO\n");
}

return0;
}
//测试平台自己测去