所谓回文数,就是说一个数字从左边读和从右边读的结果是一模一样的,比如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")}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)