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


所谓回文数,就是说一个数字从左边读和从右边读的结果是一模一样的,例如12321。判断给出的整数是否是回文数;若是,则输出该整数各位数字之和;否则输出该数不是一个回文数。

原理大致为:任何一个数除以10的余数就是该数最后一位;任何一个数除以10的商就是排除掉最后一位后的数;所以 ,一个数1234 就可以通过这种方法得到 123 和 4;接下来对 123 进行同样的操作,就得到 12 和 3;接下来得到 1 和 2;接着得到 0 和 1;整个过程是个循环,当商不是 0 的时候就一直如此;每次拿到一个余数,都用来构造新数,新数=新数*10+余数;所以经过四次循环后,我们得到新数 4321 ,如果是回文,那么新数应该等于原数,否则,说明不是回文。

1、判断一个数是不是回文数

#include <stdio.h>

void main()
{
	int sum=0,s,n;
	scanf("%d",&s);
	n=s;
	while(n>0)
	{
		sum=sum*10+n%10;
		n=n/10;
	}
	if(sum==s)
	{
		printf("%d是一个回文数\n",s);
	}else
	{
		printf("%d不是一个回文数",s);
	}
}

2、判断一个字符串是不是回文数

#include <stdio.h>

void main()
{
	int i,j,n;
	char a[100],b[100];
	scanf("%s",a);
	n=strlen(a);
	j=n-1;
	for(i=0;i<n;i++)//循环将字符串a逆序赋值给b
	{
		b[j]=a[i];
		j--;
	}
	for(i=0;i<n;i++)
	{
		if(a[i]!=b[i])
		   break;
	}
	if(i==n)
	   printf("是一个回文数\n");
	else
	   printf("不是一个回文数\n");
}

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM