C语言怎么判断一个数是否是回文数?

C语言怎么判断一个数是否是回文数?,第1张

所谓回文数,就是说一个数字从左边读和从右边读的结果是一模一样的,比如12321。

以下是判断一个数是否为回文数的代码:

大致思路就是将一个数反着排列一遍,如果和原先的数一样,那么就是回文数。这个排列过程用到了余数和整除。比如986,经过排列后为689,就不是回文数。

扩展资料:

判断一个字符串是否为回文:

要判断一个数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=0n1n1/=10)

n2=n2*10+n1%10

printf("%s\n",n2==n?"Yes":"No")

return 0

}

下面介绍了几种判断回文的方法:

你提问的第一个地方,比如你输入了个5个字符的字符串 ,abcba    先判断第一个和最后一个是否相同 ,再判断第二个和倒数第二个 。

如果相等程序正常执行 ,如果不相等 ,break就跳出循环  ,你提问的第二个地方就是i 如果等于 len/2说明 上边循环式正常退出 。

那就是说前后一一对比都相同 ,是回文数  ,不等于len/2说明是由break退出导致,既前边和后边某一位不相同

若输入 abbci=0str[0]='a'  str[4-1-0]='c'  执行break跳出for循环循环结束 i=0  所以判断不是回文若输入abbai=0str[0]='a'  str[4-1-0]='a' i=1str[1]='b'  str[4-1-1]='b'i=2for循环条件不满足i

这还有另外一种方法,即include "stdio.h" main() { char str[50]int p,i,jprintf("Input:")scanf("%s",str)printf("Input the string is:%s\n",str)p=strlen(str)for(i=0,j=p-1i=j) printf("huiwen")else printf("not a huiwen")}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11079237.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存