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