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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C语言判断一个数是不是是回文数(不用循环语句)相关的知识,希望对你有一定的参考价值。

用C语言判断一个数是否为回文数,但是不用任何循环语句,纯粹用选择结构,怎么写?


#include  <stdio.h>
#include <string.h>
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;

我用递归实现了

追问

谢谢

参考技术A 可以用栈和队列来判断
如果出栈顺序和队列顺序一样就是回文
参考技术B 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;

//测试平台自己测去追问

还是用了while和for循环语句,我想问不用循环语句怎么写,有循环的我会写

编程找出所有三位回文素数 用c语言

编程找出所有三位回文素数 用c语言 请尽快

如果是三位的话,比较好办,就是ABA的形式,首先A不能是偶数,所以可以有循环:for (int a=1;a<10;a=a+2) for (int b=0;b<10;b++) int num=a*100+b*10+a; if (num是素数) 打印num;//判断是素数的代码你应该知道吧 参考技术A #include <stdlib.h>
#include <stdio.h>
#include <math.h>

//判断该数字是否为回文数
int IsReverse(int iNum)

int iTmp = iNum;
int iTarget(0);
while(iTmp )

iTarget = iTarget *10 +iTmp%10;
iTmp = iTmp/10;

iTmp = iNum;
return (iTmp == iTarget);

// 判断该数是否为素数
int IsShu( int iNum)

int iTmp = (int) sqrt(iNum);
for (int i = 2;i<iTmp;i++)

if((iNum %i) == 0)

return 1;



return 0;


int main(int argc ,char ** argv)

int i(100);
for (;i<= 999;i++)


if( IsReverse(i)&&IsShu(i))

printf("%d\n",i);




return 0;

参考技术B 楼主能解释下什么是回文素数吗?

以上是关于用C语言判断一个数是不是是回文数(不用循环语句)的主要内容,如果未能解决你的问题,请参考以下文章

C语言:判断一个数是不是为回文数,要求如下:

C++程序,判断一个数是不是为回文数

用C语言编写程序,判断一个数是不是为回文数。

C语言判断一个数是不是回文数

C语言判断一个数是不是回文数

C++语言 输入一个正整数,判断它是不是是回文数