簡單等級leetcode~回文數(shù)C語言版

題目描述:

判斷一個整數(shù)是否是回文數(shù)?;匚臄?shù)是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數(shù)。

示例

輸入: 121
輸出: true

C語言答題模板

bool isPalindrome(int x) {

}

解答

由于C語言中沒有布爾類型,所以我們要自己定義stdbool.h頭文件并導(dǎo)入程序中
stdbool.h頭文件如下:

#ifndef __STDBOOL_H
#define __STDBOOL_H

typedef enum{
    false = 0,
    true = !false,
}bool;
#endif

然后把該文件放入安裝路徑的XXXX\VC98\Include中即可

完整代碼

#include <stdio.h>
#include <stdbool.h>

bool isPalindrome(int x) 
{
    int temp,k;
    k = x;
    temp = 0;
    if(x<=0)
       return false;
    while(x)
    {
       temp = temp*10 + x%10;
       x = x /10;
    }
    
    if(k==temp)
       return true;
    else
       return false;
} 

int main()
{
    int m;
    

    scanf("%d",&m);

    if(isPalindrome(m))
    
       printf("%d是回文數(shù)\n",m);
    
    else
      printf("%d不是回文數(shù)\n",m);
    return 0;
}

另一種方式就是先判斷出該整數(shù)的位數(shù),然后再接著判斷第一位和最后一位是否相同,第二位和倒數(shù)第二位是否相同........

#include <stdio.h>
#include <stdbool.h>

bool isPalindrome(int x) 
{
    int a[10];
    int i,j;
    i=0;

    if(x<0)
       return false;

    while(x)
    {
       a[i] = x%10;
       x = x/10;
       i++;
    }

    for(j=0;j<i;j++)
    {
      if(a[j]==a[i-j-1])
      {
        return true;
      }
      else
         return false;
    }

} 

int main()
{
    int m;
    scanf("%d",&m);
    if(isPalindrome(m))
       printf("%d是回文數(shù)\n",m);
    else
      printf("%d不是回文數(shù)\n",m);
    return 0;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容