精华内容
下载资源
问答
  • 判断回文数 C语言

    2020-12-16 17:18:26
    判断回文 问题描述 用指针作为函数参数,编写函数fun,该函数的功能是判断字符串是否为回文,若是则函数返回1,主函数中输出“YES”,否则返回0,主函数中输出“NO”。例如,字符串LEVEL是回文,而字符串123312就不是...

    判断回文数

    问题描述

    用指针作为函数参数,编写函数fun,该函数的功能是判断字符串是否为回文,若是则函数返回1,主函数中输出“YES”,否则返回0,主函数中输出“NO”。例如,字符串LEVEL是回文,而字符串123312就不是回文。

    输入

    一串字符串

    输出

    YES 或 NO

    解答

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    void fun(char str[100]);
    
    int main()
    {
        char str[100];
        gets(str);
        fun(str);
        return 0;
    }
    
    void fun(char str[100])                          /*判断是否是回文序列*/
    {
        int a, b;
        for(b = 0, a = strlen(str)-1;a>b; b++, a--)  /*分别从字符串两端进行比较,相等则向中间靠拢, 不等则直接打印“NO”退出*/
        {
            if(str[a]!=str[b])
            {
                printf("NO");
                exit(0);
            }
        }
        printf("YES");
    }
    

    题源

    李含光

    展开全文
  • 所以可以采用前后紧逼法,在字符串最后设置一个指针p,在字符串起始设置一个指针s,p想前移动,s向后移动,来判断字符串是否为回文数。 题目要求,除数字、字母外,忽略其他字符,同时字母不区分大小写 难点:...

    Valid Palindrome
    Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.

    For example,
    “A man, a plan, a canal: Panama” is a palindrome.
    “race a car” is not a palindrome.

    Note:
    Have you consider that the string might be empty? This is a good question to ask during an interview.

    For the purpose of this problem, we define empty string as valid palindrome.
    题意:给定一个字符串,确定它是否是回文,只考虑字母、数字字符并忽视其他字符。
    for example:
    “A man, a plan, a canal: Panama” 是一个回文数
    “race a car”不是回文数
    Notes:
    对于这一问题,我们定义了空字符串也作为有效的回文。
    解题思路:
    回文数,就是指一个单词或句子,其顺读和倒读都是一样的。
    回文数: A man, a plan, a canal–Panama == amanaplanacanalpannama
    由于顺读和倒读都是一样的,说明最后一个字母和第一个字母时相等的,倒数第二个字母和第二个字母时相等的,……
    所以可以采用前后紧逼法,在字符串最后设置一个指针p,在字符串起始设置一个指针s,p想前移动,s向后移动,来判断字符串是否为回文数。
    题目要求,除数字、字母外,忽略其他字符,同时字母不区分大小写
    难点:在于细节的处理,如何去除非数字、字母的字符,如何统一大小写字母,如何设置回文数的结束条件。
    以下是C代码实现:

    /**
     * 解题思路:回文数,就是指一个单词或句子,其顺读和倒读都是一样的。
     *  回文数: A man, a plan, a canal--Panama == amanaplanacanalpannama
     * 由于顺读和倒读都是一样的,说明最后一个字母和第一个字母时相等的,倒数第二个字母和第二个字母时相等的,......
     * 所以可以采用前后紧逼法,在字符串最后设置一个指针p,在字符串起始设置一个指针s,p想前移动,s向后移动,
     * 来判断字符串是否为回文数。
     * 题目要求,除数字、字母外,忽略其他字符,同时字母不区分大小写
     */
    
    char compareCHAR(char ch);
    bool isPalindrome(char *s) {
        int i,length,j;
        char *p;
        if(*s == '\0') return 1;//判断空字符也是回文数
        length = 0;
        while(*(s + length) != '\0'){//统计字符串的长度
            length++;
        }
        p = s + length - 1;//设置尾指针
        i = j = 0;
       while(s + j != p - i && s + j <= p - i){//当指针p的地址与s的地址相等,或者s的地址必须小于等于p的地址,则退出
            if(compareCHAR(*(s + j)) == 0){j++;continue;}//当不是数字、字母时,指针向后移动一位
            if(compareCHAR(*(p - i)) == 0){i++;continue;}
            if(compareCHAR(*(s + j)) == compareCHAR(*(p - i))){
                j++;
                i++;
                continue;
            }else{
                return 0;
            }
        }
        return 1;
    
    }
    
    char compareCHAR(char ch){
        if(ch >= 48 && ch <= 57){
            return ch;
        }else if(ch >= 65 && ch <= 90){//把A-Z转化为a-z进行比较
            return ch + 32;
        }else if(ch >= 97 && ch <= 122){
            return ch;
        }else{
            return 0;
        }
    
    }
    展开全文
  • 怎么判断回文数?首先看定义,什么是回文数。回文数 定义:设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数...

    大家好,我是阿汤哥,前两天在公众号后台收到一个朋友问回文数,今天我们就来谈谈怎么用C语言编程判断一个数是不是回文数。

    怎么判断回文数?

    首先看定义,什么是回文数。

    回文数 定义:

    设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。注意:1.偶数个的数字也有回文数1244212.小数没有回文数。

    怎么判断一个数是不是回文数?这里运用这样的方法:把一个数反着排列一遍,如果和原先的数相同,那么就是回文数。这里难点在于如何把一个数反着排列。比如一个数 s = 12345,怎么把这个数反着排?

    设s反着排列的数为m,我们使用下面方法来生成m:

    1. 取出s(12345)末尾数n(5)放到m(0)的末位(初始为0)。这步结束后:m = 5,s = 1234
    2. 取出s(1234)末尾数n(4)放到m(5)的末位。这步结束后:m = 54,s = 123
    3. 取出s(123)末尾数n(3)放到m(54)的末位。这步结束后:m = 543,s = 124
    4. 取出s(12)末尾数n(2)放到m(543)的末位。这步结束后:m = 5432,s = 1
    5. 取出s(1)末尾数n(3)放到m(5432)的末位。这步结束后:m = 54321,s = 0 。
    6. s = 0,过程结束。

    所以简单来说,就是循环地把s末位数放到m的末位,直到s等于0为止。

    那么怎么求一个数末位数?用求余方法,对10求余。比如12345的末位数=12345%10=5。

    怎么把一个数字a放到一个数字m的末尾?m*10+a就可以。比如m=0,a=5时, m*10+a = 0*10+5 =5。

    C语言代码

    完整C语言代码如下:

    /**
     * Author: 阿汤哥
     * 微信公众号:C语言修仙
     */
    
    # include <stdio.h>
    
    int main()
    {
        int num, m =0, s = 0, n;
    
        printf("请输入一个正整数:n");
        scanf("%d",&num);
    
        s = num;
        while(s!=0)
        {
            n = s%10;   //n是s的末位数
            m = m*10 +n; //把s的末位数放到m的末位
            s = s/10;  //去掉末位数的新s
        }
    
        if (num == m)
            printf("%d 是回文数n", num);
        else
            printf("%d 不是回文数n",num);
    
        return 0;
    }
     

    运行结果

    输入:12345

    2d1384a8cefd971f2ca25cd0a0e0118a.png

    输入123454321

    2e324b8f2cb141d6516dfda718dc7fff.png

    关注公众号“C语言修仙”,分享你C语言知识、编程工具、程序代码、笔试面试、题库教程。

    http://weixin.qq.com/r/ODiagq-EufLGrevh920q (二维码自动识别)

    展开全文
  • 判断一个整数是否是回文。回文是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。...
  • C语言如何判断回文数

    2021-04-04 22:45:43
    关于如何用C语言判断回文数? 1.什么是回文数? 答:所谓回文数就是一个数字倒着写和正着写相等。 举例:111,121,1221,12321… 2.怎么判断一个数字是不是回文数呢? 答:我们需要一个简单的算法,但是用到这个...

    关于如何用C语言判断回文数?

    1.什么是回文数?
    答:所谓回文数就是一个数字倒着写和正着写相等。
    举例:111,121,1221,12321…

    2.怎么判断一个数字是不是回文数呢?

    答:我们需要一个简单的算法,但是用到这个算法之前我们需要知道一个数字被取余是保留后面的数字,一个数被除则是砍掉后面的数字。

    思路:我们要让输入的数字从逆序的保留一遍然后用保留的这个数字和输入的数字进行比较如果一样则是回文数,反之不是回文数。

    具体程序如下:

    #include<stdio.h>
    int main(void)
    {
    	int i,j,k=0;
    	printf("please input number:");
    	scanf("%d",&i);
    	j=i;
    	while(j)
    	{
    		k=k*10+j%10;
    		j/=10;
    	}
    	if(k==i)
    	printf("%d是回文数!",i);
    	else
    	printf("%d不是回文数!",i);
    	return 0;
    }
    

    看完代码可能还不理解代码的总体作用
    需要验证一遍:

    /*
    	假定输入的数字是121;
    	第一次循环:k:0=0*10+121%10 = 1;
    				j:121/=10 = 12;
    				
    	因为j!=0
    	进行第二次循环判断: 
    	k:1=1*10+12%10 = 12;
    	j:12/=10 = 1;
    	
    	j!=0
    	进行第三次循环判断:
    	k:12*10+1%10 = 121;
    	 
    	k==i;
    	则判断输入的数字是回文数;
    	程序结束 
    */
    

    **

    展开全文
  • c语言判断回文数

    2020-03-10 21:05:35
    所谓回文数,即顺读与逆读相同的整数。 如292、10301均为回文数, 编写一个程序判断输入的一个整数是否是回文数。 输入样例: 10301 234 输出样例: 10301是回文数 234不是回文数 #include<stdio.h> int main...
  • LeetCode 第九题回文数C语言解答 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向右读, 为...
  • c语言 判断回文数

    2020-03-06 13:07:16
    判断一个 5 位数是不是回文数。例如 12321 是一个回文数,即它的个位与万位相同,十位与千位相同。。 输入格式: 直接输入一个 5 位数正整数。 输出格式: 输出 “yes” 或 “no”。此处均为小写字母 我的答案 #...
  • 怎么判断回文数?首先看定义,什么是回文数。回文数 定义设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。...
  • 判断一个数是否为回文数。 设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。 例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数 */ #include <stdio.h> ...
  • 怎么判断回文数?首先看定义,什么是回文数。回文数 定义:设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数...
  • #include<stdio.h> int main() { int t,n,i,j=0,temp,str[100]; scanf("%d",&t); while(t--) { scanf("\n%d",&n); temp=n; for(i=0;temp!=0;temp/=10) { i=i*10+temp%10;...}
  • C语言判断回文数

    万次阅读 2019-03-23 14:24:31
    判断一个数是否为回文数,回文数就是它的数字反向排列所得的自然数与它的本身是相等的,比如,若n=12321,则称它是一个回文数。:程序利用到一个数位遍历的for循环,将输入的数字进行反向排列,再与原输入的数字进行...
  • 怎么判断回文数?首先看定义,什么是回文数。回文数 定义设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。...
  • C语言判断回文数

    千次阅读 2018-03-06 16:52:29
    #include int main(void) {  int x;  int m;  int sum=0;  printf("请输入一个数字\n");  scanf("%d",&x);  m = x;  while(m) ... printf("回文\n");  else  printf("不是\n");  return 0; }
  • 这里写自定义目录标题新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片...C语言判断回文数(PTA) #include <stdio.h> #include<string.h>
  • C语言判断一个数是不是回文数

    万次阅读 多人点赞 2018-08-16 15:59:19
    所谓回文数,就是说一个数字从左边读和从右边读的结果是一模一样的,例如12321。判断给出的整数是否是回文数;若是,则输出该整数各位数字之和;否则输出该数不是一个回文数。 原理大致为:任何一个数除以10的余数...
  • C语言--判断回文数

    2016-11-03 11:57:54
    回文数的判断回文数,就是那些反过来看和原数相等的数。例如:121,1221,2222等。只需通过数学运算将数字的数位对换,便可判断该数是否是回文数。计算方法较容易,在接下来的代码中一看便知。#include int main() ...
  • C语言判断回文数

    千次阅读 2018-08-14 20:03:12
    题目: 代码: #include "stdio.h" int main() { int i, n; int a, b, c, d, e, f; printf("请输入n:"); scanf_s("%d", &amp;n); if (n &... ++i) ..
  • 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。 2 分析 本题的思路是把这个数分解重新组成一个数,分解的方法是将该数逆置,再与原来的数比较是否相等,若相等就是回文数,逆置...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 249
精华内容 99
关键字:

判断回文数c语言

c语言 订阅