c語(yǔ)言判斷回文數(shù)的程序 C語(yǔ)言怎么判斷一個(gè)數(shù)是否是回文數(shù)?
就像兩個(gè)豌豆一樣,數(shù)字的數(shù)目與從左側(cè)和右側(cè)得到的結(jié)果完全相同,例如12321。下面是判斷一個(gè)數(shù)是否為回文數(shù)的代碼:一般的思路是將一個(gè)數(shù)倒序排列。如果與原來(lái)的數(shù)字相同,則為回文數(shù)字。這種排列使用余數(shù)和除
就像兩個(gè)豌豆一樣,數(shù)字的數(shù)目與從左側(cè)和右側(cè)得到的結(jié)果完全相同,例如12321。下面是判斷一個(gè)數(shù)是否為回文數(shù)的代碼:一般的思路是將一個(gè)數(shù)倒序排列。如果與原來(lái)的數(shù)字相同,則為回文數(shù)字。這種排列使用余數(shù)和除法。例如,986是689,這不是回文數(shù)。
C語(yǔ)言怎么判斷一個(gè)數(shù)是否是回文數(shù)?
#包括“標(biāo)準(zhǔn)”。H“
#包括”conio。H“
int main(void)
{
int i,k
long n,M
int digit[10
]clrsc()
puts(“請(qǐng)輸入一個(gè)長(zhǎng)的數(shù)字:”)
scanf(“%LD”,&n)
M=NK=0
do
{
]digit[k]=M /*//*保存最低位*/
M/=10/*/*刪除最低位*/]}while(M!=0)
K--
for(I=0I<ki,K--)/**//*If回文數(shù)*/
If(數(shù)字[I]!=數(shù)字[k])break/*////*不相等,則它不是回文數(shù),循環(huán)*/
if(I<K)printf(“%LD不是回文數(shù)”,n)
else printf(“%LD是回文數(shù)”,n)
getch()
return 0
}
]#include<stdio。H> bool is palindrome(int)int main(){int m scanf(%D,&;ampm)If(ispalindrome(m))printf(yes)else printf(no)return 0}bool ispalindrome(int n){int a[20]//用于存儲(chǔ)n中的位數(shù),int i=0//下面的循環(huán)用于使a數(shù)組依次存儲(chǔ)位數(shù)、十位數(shù)和百位數(shù),而(n>0){a[i]=n n/=10}//退出循環(huán),您可以知道n是i位int j=0,k=i-1,而(a[j]==a[k]&;amp;amp;amp;amp;amp;amp;amp;j<K)//只要兩邊的數(shù)字相等,就看j,k——如果(j>=k)返回true//兩端對(duì)應(yīng)的數(shù)字已經(jīng)比較過(guò),它們都相等。它們是回文數(shù)字,否則返回false}