力扣 回文数

先贴我写的.c文件

主要思路是:

1.用char类型的数组来存字符,这样可以判断 ‘ - ’

2.读取字符的for循环中,有一个if语句来判断结尾。

3.再一个for循环,判断是不是回文数字。

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 int main(){
 4     int n = 0;           //读取数字长度
 5     char a[20];
 6     for(int i = 0 ;;i++){           //将数字读取到char 类型的a数组中
 7         scanf("%c",&a[i]);
 8         if(a[i]=='\n'){
 9             break;
10         }
11         n++;
12     }
13     //printf("数字长度是%d\n",n);
14     for(int i = 0;i < n-1-i ; i++){     //通过一位一位的比较,判断是不是回文。
15         if(a[i]!=a[n-i-1]){
16             printf("false\n");      //如果不是,直接return 0
17             return 0;
18         }
19     }
20     printf("true\n");               //能够完成循环,说明中间都通过了验证,是回文数字。
21     return 0;
22 }

 

力扣上要求是一个函数,其实比我们这个还要更简单。注意!力扣上函数内传过来的是整型而不是字符型。

如下:

 1 bool isPalindrome(int x){
 2     long sum=0;
 3     int m=x;
 4     if (x<0){
 5         return false;
 6     }
 7     while (x>0){
 8         sum=sum*10+x%10;
 9         x/=10;
10     }
11     if (sum==m){
12         return true;
13     }else{
14         return false;
15     }
16 }

 

posted @ 2021-01-09 21:11  沉梦昂志_doc  阅读(181)  评论(0编辑  收藏  举报