C语言经典算法实例4:判断回文数

这篇具有很好参考价值的文章主要介绍了C语言经典算法实例4:判断回文数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

c语言判断回文,C语言,# C语言经典算法实例,# C语言经典实例,c语言,算法,开发语言,C语言经典实例,C语言回文数

一、问题描述

判断回文数
问题的描述
如下几点所示

  1. “回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。
  2. 在数学中也有这样一类数字有这样的特征,成为回文数(palindrome number)。
  3. 设n是一任意自然数,若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。
  4. 例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。
  5. 回文数就是顺着看和倒着看相同的数。
  6. 判定正整数n 的 d 进制表示 形式是否是回文数。

注意:

  1. 偶数个的数字也有回文数124421
  2. 小数没有回文数

其中,本文要使用的回文数如下功能所示。

  • 回文数就是顺着看和倒着看相同的数。
  • 判定正整数n 的 d 进制表示 形式是否是回文数。

二、算法实例编译环境

本文C语言经典算法实例的编译环境,使用的是集成开发环境:Visual Studio 2019
c语言判断回文,C语言,# C语言经典算法实例,# C语言经典实例,c语言,算法,开发语言,C语言经典实例,C语言回文数

Visual Studio 2019官网链接如下

Visual Studio 2019官网链接
c语言判断回文,C语言,# C语言经典算法实例,# C语言经典实例,c语言,算法,开发语言,C语言经典实例,C语言回文数

Visual Studio 2019集成的开发环境的特点有

    1. Visual Studio 2019默认安装Live Share代码协作服务。
    1. 帮助用户快速编写代码的新欢迎窗口、改进搜索功能、总体性能改进。
    1. Visual Studio IntelliCode AI帮助。
    1. 更好的Python虚拟和Conda支持。
    1. 以及对包括WinForms和WPF在内的.NET Core 3.0项目支持等。

三、算法实例实现过程

3.1、包含头文件

包含头文件 代码如下所示

#pragma once

// 包含头文件
#include <stdio.h>
#include <stdlib.h>

  • 将要用到的C语言头文件包含进来。

3.2、声明数组,并初始化

声明数组,并初始化 代码如下所示

int num[] = { 232,27,851, 12321};			// 定义输入数字变量的数组。
int scale[] = { 2,10,16 };					// 定义输入进制变量的数组。
  • 定义输入数字变量的数组num。
  • 定义输入进制变量的数组scale。

3.3、声明相关变量

声明相关变量 代码如下所示

	int i, j;           // 声明相关的变量
  • 声明相关变量i, j;

3.4、声明函数

声明函数 代码如下所示

/// <summary>
/// 判断数字n是否是输入d进制的回文数
/// </summary>
/// <param name="n">数字n</param>
/// <param name="d">d代表进制, 若d = 10 , 则数字n是十进制</param>
/// <returns>如果数字n是d进制的回文数, 则返回1</returns>
int circle(int n, int d);

  • 可以判断数字n是否是输入d进制的回文数。
  • d代表进制, 若d = 10 , 则数字n是十进制。
  • 如果数字n是d进制的回文数, 则返回1。

c语言判断回文,C语言,# C语言经典算法实例,# C语言经典实例,c语言,算法,开发语言,C语言经典实例,C语言回文数

3.5、 函数的定义

函数的定义 代码如下所示

/// <summary>
/// 判断数字n是否是输入d进制的回文数
/// </summary>
/// <param name="n">数字n</param>
/// <param name="d">d代表进制, 若d = 10 , 则数字n是十进制</param>
/// <returns>如果数字n是d进制的回文数, 则返回1</returns>
int circle(int n, int d)
{
    int s = 0, m = n;

    while (m)
    {
        s = s * d + m % d;
        m /= d;
    }

    return s == n;
}
  • 对函数的声明进行定义,实现函数的具体功能。
  • 判断数字n是否是输入d进制的回文数。
  • d代表进制, 若d = 10 , 则数字n是十进制。
  • 如果数字n是d进制的回文数, 则返回1。

3.6、遍历数组中的数字, 进行是否是回文数的判断

遍历数组中的数字, 进行是否是回文数的判断 的代码如下所示。

	/// <summary>
    /// 遍历数组中的数字, 进行是否是回文数的判断
    /// </summary>
    /// <returns>无</returns>
    for (i = 0; i < sizeof(num) / sizeof(num[0]); i++)
    {
        for (j = 0; j < sizeof(scale) / sizeof(scale[0]); j++)
        {
            if (circle(num[i], scale[j]))       // 调用circle函数, 对数组中的存储的数字进行回文数的判断。
            {
                printf("%d --> (%d) 进制是回文数\n", num[i], scale[j]);
            }
            else
            {
                printf("%d --> (%d) 进制不是回文数\n", num[i], scale[j]);
            }
        }
        printf("\n");
    }
    printf("\n");
  • 遍历数组中的数字, 进行是否是回文数的判断。
  • 对数组中的数字是否是回文数进行输出。

按F5进行编译,调试结果如下所示。

c语言判断回文,C语言,# C语言经典算法实例,# C语言经典实例,c语言,算法,开发语言,C语言经典实例,C语言回文数

四、经典算法实例程序 完整代码

经典算法实例程序完整代码如下所示

4.1、main.h文件

#pragma once

// 包含头文件
#include <stdio.h>
#include <stdlib.h>

int num[] = { 232,27,851, 12321};			// 定义输入数字变量的数组。
int scale[] = { 2,10,16 };					// 定义输入进制变量的数组。

/// <summary>
/// 判断数字n是否是输入d进制的回文数
/// </summary>
/// <param name="n">数字n</param>
/// <param name="d">d代表进制, 若d = 10 , 则数字n是十进制</param>
/// <returns>如果数字n是d进制的回文数, 则返回1</returns>
int circle(int n, int d);

c语言判断回文,C语言,# C语言经典算法实例,# C语言经典实例,c语言,算法,开发语言,C语言经典实例,C语言回文数

4.2、main.c文件

#define _CRT_SECURE_NO_WARNINGS

#include "Main.h"


/// <summary>
/// 主函数
/// </summary>
/// <returns>返回0</returns>
int main()
{
    system("color 3E");

    
    int i, j;           // 声明相关的变量

    /// <summary>
    /// 遍历数组中的数字, 进行是否是回文数的判断
    /// </summary>
    /// <returns>无</returns>
    for (i = 0; i < sizeof(num) / sizeof(num[0]); i++)
    {
        for (j = 0; j < sizeof(scale) / sizeof(scale[0]); j++)
        {
            if (circle(num[i], scale[j]))       // 调用circle函数, 对数组中的存储的数字进行回文数的判断。
            {
                printf("%d --> (%d) 进制是回文数\n", num[i], scale[j]);
            }
            else
            {
                printf("%d --> (%d) 进制不是回文数\n", num[i], scale[j]);
            }
        }
        printf("\n");
    }
    printf("\n");

    system("pause");
    return 0;
}

/// <summary>
/// 判断数字n是否是输入d进制的回文数
/// </summary>
/// <param name="n">数字n</param>
/// <param name="d">d代表进制, 若d = 10 , 则数字n是十进制</param>
/// <returns>如果数字n是d进制的回文数, 则返回1</returns>
int circle(int n, int d)
{
    int s = 0, m = n;

    while (m)
    {
        s = s * d + m % d;
        m /= d;
    }

    return s == n;
}

c语言判断回文,C语言,# C语言经典算法实例,# C语言经典实例,c语言,算法,开发语言,C语言经典实例,C语言回文数

五、总结

本文的C语言经典算法实例:求二维数组最大最小值,要实现的目标如下

  • 回文数就是顺着看和倒着看相同的数。
  • 判定正整数n 的 d 进制表示 形式是否是回文数。

c语言判断回文,C语言,# C语言经典算法实例,# C语言经典实例,c语言,算法,开发语言,C语言经典实例,C语言回文数

文到这里就结束啦。
希望本文的C语言经典算法实例4:判断回文数。
能激发你对C语言以及算法学习的热爱。文章来源地址https://www.toymoban.com/news/detail-781536.html

  • 你们的支持是对我最大的鼓励。

到了这里,关于C语言经典算法实例4:判断回文数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言经典算法实例6:斐波那契数列

    斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21,34,55,89… 这个数列从第3项开始,每一项都等于前两项之和。 斐波那契数列的定义者,是意大利数学家莱昂纳多·斐波那契(Leonardo Fibonacci),生于公元1170年,卒于1250年,籍贯是比萨。 他被人称作“比萨的莱昂

    2024年02月02日
    浏览(46)
  • 经典面试题:玩家进游戏场地分配号码、判断括号是否闭合、提取回文串字符的分析和 php 程序实现 - 经典数据结构面试

        给定一长串字母和符号,里面有三种括号包括([{}])这些,需要判断这三种括号必须是配对的。即这三类括号要么不出现,要出现必须是先出现左边的括号,然后出现右边的,中间括号可以嵌套。     定义一个字符对应关系数组,初始化一个数组栈。所以进入的左边符号入

    2024年04月25日
    浏览(43)
  • 7-1 回文判断(数据结构) PTA C语言

    回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。编写一个程序,使用栈判定给定的字符序列是否为回文。 若用C++,可借助STL的容器实现。 输入格式: 输入待判断的字符序列,按回车键结束,字符序列长度20。 输出格式: 若字符序列是

    2024年02月02日
    浏览(47)
  • C++判断一个数是否为回文数的算法

    C++判断一个数是否为回文数的算法 回文数是指正序(从左向右)和倒序(从右向左)读都相同的整数。在C++中,我们可以使用算法来判断一个数是否为回文数。下面是一个详细的解释和相应的源代码。 算法思路: 将给定的整数转换成字符串。 使用双指针法来检查字符串的左

    2024年02月06日
    浏览(53)
  • 判断字符串是否为回文的三种常用编程语言实现

    引言:回文是一种具有镜像对称性的字符串,即它从左到右读和从右到左读是相同的。回文可以在文学、语言学、数学、计算机科学等领域中得到广泛应用。在计算机科学中,判断一个字符串是否为回文是一项基本的算法挑战。在本文中,我们将介绍三种常见的编程语言中用

    2024年02月03日
    浏览(54)
  • 【经典算法】LeetCode 5: 最长回文子串(Java/C/Python3实现含注释说明,Medium)

    标签(题目类型):回文串、动态规划 原题:LeetCode 5 思路 Dynamic Programming(DP) 动态规划是一种将问题分解成子问题并分别计算的优化技术。对于回文子串,我们可以使用动态规划来解决。 对于一个子串而言,如果它是回文串,并且长度大于 2,那么将它首尾的两个字母去除之后

    2024年04月14日
    浏览(66)
  • 【蓝桥杯】1434:回文数字—>三种判断回文的方法

    通过对蓝桥杯真题回文数字的讲解,引出关于三种回文判断的方式: 数组或字符串 、 栈 、 直接反转数字 。 目录 前言: 蓝桥杯题目:回文数字 题目分析: 一、数组或字符串判断回文: 二、利用栈的数据结构判断回文: 三、直接反转数字 观察数字:12321,123321  都有一个

    2024年02月09日
    浏览(38)
  • 蓝桥杯回文日期判断

    思想: 对于回文数的判断方法,最快的就是取其中一半的字符串长度,为s,然后将其进行翻转为s’ ,再把两者进行拼接即可保证是回文数,这样子就解决了枚举所有回文数的问题。 注意点: 要求必须是有效日期 注意闰年的2月份问题 代码: (1)判断所给字符串是不是回

    2024年01月18日
    浏览(42)
  • 链表的回文判断

    思路: 找中间节点–逆置-比较 代码:

    2024年02月07日
    浏览(45)
  • C语言经典算法之括号匹配算法

    目录 前言 A.建议 B.简介 一 代码实现 二 时空复杂度 A.时间复杂度分析 B.空间复杂度分析 三 优缺点 A.优点: B.缺点: 四 现实中的应用 1.学习算法最重要的是理解算法的每一步,而不是记住算法。 2.建议读者学习算法的时候,自己手动一步一步地运行算法。 tips:文中的(如

    2024年02月21日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包