题目描述:

给你一个整数 x ,如果 x 是一个回文整数,打印yes ;否则,打印no 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。

运行示例:


完整代码:

#include <stdio.h>
#include <stdlib.h> 

int main()
{
	int x,tem,revertedNumber,num;
	char figure = 0; 
	
	
	
	printf("输入数字X:");
	scanf("%d",&x);	
	
	if(x < 0 || (x % 10) == 0)//负数以及个位为零的数字,一定不是回文数。 
	{
		printf("no");
		return 0;
	}

	tem = x;
	
	while(tem)//判断输入的数字是几位数。 
	{
		figure++;	
		tem /= 10;
	} 
	
	num = figure / 2;//将数字位数除以2,只需要判断一个数字的前一半等于倒序的后一半 
	revertedNumber = 0; 
	
	for(int i = 0; i < num; i++)  
	{
		revertedNumber	= (revertedNumber * 10) + (x % 10); 
		x /= 10;
	}
	if(figure%2 != 0)//若输入数字位数为奇数,要将正中间的数字消去 ,才能比较前一半以及后一半数字 
		x /= 10;
		
	if(x == revertedNumber )
		printf("yes");
	else
		printf("no");	
		
	return 0;	
					
}

更多推荐

回文数(c语言)