【小白必懂】C语言回文数判断

若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我,若你是真心学习可以送你书籍,指导你学习,给予你目标方向的学习路线,无套路,博客为证。

情景再现

👸小媛:小C,今天可以教我回文数吗? 😱

🐰小C:怎么了?怎么突然想搞回文数。

👸小媛:因为我琢磨了好久回文数,没搞出来。完全没看懂怎么写的,例如判断一个数是否是回文数。 😭

🐰小C:嗯,可以。那你知道什么是回文数吧?

👸小媛:回文数就是正着念和倒着念都是没差别的数字,语文里面还有回文,也就是“我为人人,人人为我”;反过来念也是“我为人人,人人为我”,数学里面就是 151 反过来念也是 151。

🐰小C:那你了解了就行,判断回文数还需要会编写一段代码,这一段代码可是十分的重要。

👸小媛:什么代码?

🐰小C:就是将一个数进行反转的代码,例如有一个数是 123456,你需要将其反转成 654321,否则在一般情况下你就很难去判断这个数字是否是回文数。

👸小媛:对,反正我是一点都没看懂,太难了。 😭

🐰小C:那我们接下来先试着看看如何将一个数进行反转吧。

👸小媛:多谢小C 带我飞。

🐰小C:我们现在第一步,创建两个变量,一个是 a,里面存储 123456,这个变量 a 也是用来进行回文的数;接着,我们需要创建一个变量 b,并且将其赋值为 0。

int a=123456,b=0;

👸小媛:嗯,明白了,接着讲吧。

🐰小C:我就是一步步来怕你不懂,因为第二步就直接进入正题了。

👸小媛:啊,是这样呀,哈哈哈,多谢小C。 😂

🐰小C:那我们接着进入第二步,你看下面程序,你知道这个循环会做些什么吗?

int a=123456,b=0;while(a!=0){b=a%10;a=a/10;} 

👸小媛:你是指 while 循环吗?

🐰小C:是的,你来讲讲这个循环内发生了什么事。

👸小媛:…嗯,就是每次循环,变量 b 就会存储变量 a 取模 10 后得到的数,也就是得到当前变量 a 这个数值的个位,然后 a 每次都缩小 10倍,由于 a 是一个整数类型的变量,所以不能有小数点,此时将会舍弃,那么就是一个整数。

🐰小C:你自己模拟一下循环了 3 次后会怎样,口述出来。

👸小媛:其实就是第一次的时候变量 a 是 123456,接着开始循环;在第一次循环时 123456 % 10 那么结果为 6,取模就是除 10 之后得到一个余数,这就是结果;那么此时将会把这个余数 6 存储在变量 b 中;接下来这个变量 a 将会除 10 会缩小 10倍,接下来就会等于 12345。

🐰小C:接着讲第二次会怎样。

👸小媛:第二次时变量 a 的值是 12345,此时 12345 % 10 又得到了个位数 5,将其存储到变量 b 中,a 又一次进行缩小,编程了 1234;第三次也是一样的过程,每次都得到个位数。

🐰小C:那你发现了吗?第一次得到 123456 的个位,随后 123456 缩小十倍变成 12345;接着继续获得缩小后的个位,这个时候你应该可以发现,缩小后获取的个位其实是 123456 的百位,依次类推,123456 这个数的每一个位置都将得到。

👸小媛:是的,那又怎样呢? 😲

🐰小C:你第一次获取到的时候是不是 6?

👸小媛:是的,然后呢? 😵

🐰小C:那你第二次的时候是不是得到了 5,然后将之前得到数值乘 10 然后加上现在的 5 还不是 65?

👸小媛:对呀,那这跟回文有什么关系吗?

🐰小C:当然有关系,你可以看看第三次,第三次是不是获取到了 4,此时再将 65*10+4 是不是就得到了 654?

👸小媛:咦?!你的意思是说依次类推就可以将 123456 倒过来变成 654321 了? 😱

🐰小C:明白了吧?那你知道这个代码怎么改了吗?

👸小媛:懂了,你看看是不是下面这样?

#include<stdio.h>
int main()
{int a=123456,b=0;while(a!=0){b=b*10+a%10;a=a/10;} printf("%d",b);return 0;
}

👸小媛:结果也出来了。

🐰小C:对了,那就解释一下吧。

👸小媛:就是改一下代码,使变量 b 每次都可以乘 10,并且加上当前取模后的值,这样就可以倒过来了,但是最为关键的还是原有的数,在这里是变量 a 在不断的缩小,并且变量 b 最开始也要赋值为0,否者别的数就错了,第一次为 0 的时候乘别的数才为 0。

🐰小C:是这个意思,那么接下来我们可以做一个简单的题,用户输入一个数判断是不是回文数,你会做吗?

👸小媛:小意思,会做了,代码如下。 😎

#include<stdio.h>
int main()
{int a=0,b=0,c=0;printf("请输入一个数用来判断是否是回文数:");scanf("%d",&a); c=a;while(a!=0){b=b*10+a%10;a=a/10;} if(c==b){printf("%d 与 %d 是回文数",b,c);}else{printf("%d 与 %d 不是回文数",b,c);}return 0;
}

🐰小C:继续解释吧。

👸小媛:其实最主要就是新建了一个变量 c,这个 c 变量用来存储不断缩小十倍的变量 a,用来记录原有的值,这样最后跟转换后的变量 b 进行对比,如果一样,那就是回文数,如果不一样肯定不是回文数了。

🐰小C:是这么个意思,不错。

👸小媛:非常 nice。 😎

前言

本专栏内容将会以轻松、简单的方式完成习题的解答,用情景再现的文章风格使读者能够在轻松愉悦的阅读氛围中完成知识的吸收,本专栏考虑读者的吸收能力,不讲解过多高效的计算方法,降低阅读门槛,希望各位多多支持~

作者简介

作者名:1_bit

简介:CSDN博客专家,2020年博客之星TOP5,蓝桥签约作者。15-16年曾在网上直播,带领一批程序小白走上程序员之路。欢迎各位小白加我咨询我相关信息,迷茫的你会找到答案。

博客地址:https://i1bit.blog.csdn.net


本专栏已参加 CSDN 蓄力计划,感谢读者支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/287098.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android图片上倒计时,Android自定义照相机倒计时拍照

自定义拍照会用到SurfaceView控件显示照片的预览区域&#xff0c;以下是布局文件&#xff1a;两个TextView是用来显示提示信息和倒计时的秒数的xmlns:tools"http://schemas.android.com/tools"android:layout_width"match_parent"android:layout_height&qu…

【经典回放】多种语言系列数据结构算法:树(C#、JavaScript、VB6版)

目 录 一、树的C#语言实现以及显示 二、树的JavaScript语言实现以及显示 三、树的VB6语言实现以及显示 一、树的C#语言实现以及显示 1

『技术群里聊些啥』查看 dotnet 源码,用它!用它!用它!

前言有网友在交流群中询问&#xff0c;怎么找到 System.Linq 源码的库&#xff1a;其实&#xff0c;我一直使用http://source.dot.net查看 dotnet 源码&#xff0c;这可是David Fowler&#xff08;微软 .NET 架构师&#xff09;也推荐的&#xff1a;功能演示那它到底有哪些功能…

Android之解决PC浏览器上传表单文件到手机服务器read数据错误导致有时候下载到手机的文件打开文字错乱问题

1 、问题 手机客户端app通过java socket写了一个服务器,然后PC端通过浏览器访问服务端显示上传页面(这些资源都在手机端),然后其中有一个功能是PC端上传文件到手机服务器,然后把这个文件下载到手机本地,但是我有时候PC上传的文件打文字会错乱。 2、http的表单文件上传文…

javadoc注释规范

javadoc注释规范 javadoc做注释 一. Java 文档 // 注释一行 /* ...... */ 注释若干行 /** ...... */ 注释若干行&#xff0c;并写入 javadoc 文档 通常这种注释的多行写法如下&#xff1a; /** * ......... * ......... */ javadoc -d 文档存放目录 -author -version 源文件名.…

(7)3分钟搞定 C# 逻辑运算

本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新&#xff0c;包括别的语言以及实战都将使用对话的方式进行教学&#xff0c;基础编程语言教学适用于零基础小白&#xff0c;之后实战课程也将会逐步更新。 若…

【经典回放】多种语言系列数据结构算法:二叉树(C#版)

实验任务描述 1 用C#语言完成二叉树的类、并构造出一个二叉树; 2 用递归方法完成二叉树的遍历; 3 泛型的二叉树遍历之一、用队列给出遍历结果 4 泛型的二叉树遍历之二、委托方式给出二叉树遍历结果 1 二叉树类的设计 同C语言一样,要构建一个二叉树,要用到类似struct的东西…

ThinkPHP讲解(十二)——文本编辑器和ajax传址

一、文本编辑器 1.首先&#xff0c;在网上下载ueditor文件 2.在要添加文本编辑器的页面中引用ueditor文件中的js文件 <script type"text/javascript" charset"utf-8" src"../ueditor/utf8-php/ueditor.config.js"></script> <scr…

(8)小白又如何?3分钟搞定一个 C# 知识点

本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新&#xff0c;包括别的语言以及实战都将使用对话的方式进行教学&#xff0c;基础编程语言教学适用于零基础小白&#xff0c;之后实战课程也将会逐步更新。 若…

Android之解决PC端上传http表单格式文件手机解析文件名乱码问题和PC浏览器下载文件的文件名显示乱码问题

1 问题 问题1、 手机写socket作为服务器,PC浏览器上传http表单格式文件,然后手机端解析携带中文的文件名我解析是乱码。 问题2、 手机写了socket作为服务器,PC浏览器下载文件,但是浏览器里面的文件名有中文的时候会有乱码。 2 分析 问题1分析 User-Agent: PostmanRun…

华为鸿蒙vogtloop30pro价格,华为Mate30系列基本确认:首发麒麟985+鸿蒙系统,价格感人!...

原标题&#xff1a;华为Mate30系列基本确认&#xff1a;首发麒麟985鸿蒙系统&#xff0c;价格感人&#xff01;转眼间即将步入6月份&#xff0c;近期关于各大厂商下半年的新机消息也是多了起来&#xff0c;就拿华为下半年的高端旗舰华为Mate30系列来说&#xff0c;在各方媒体的…

[不一样的依赖注入]容器与服务周期的结合

微信公众号&#xff1a;趣编程ACE关注可了解更多的.Net日常开发技巧&#xff0c;如需源码请后台留言 源码;如果觉得本公众号对您有帮助&#xff0c;欢迎关注前文回顾[不一样的依赖注入]通过递归实现容器里依赖注入不一样的依赖注入 创建周期的加入首先创建一个依赖提供类&#…

(11)python里面while到底有多少知识点

本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新&#xff0c;包括别的语言以及实战都将使用对话的方式进行教学&#xff0c;基础编程语言教学适用于零基础小白&#xff0c;之后实战课程也将会逐步更新。 若…

【经典回放】多种语言系列数据结构算法:二叉树(JavaScript版)

1 二叉树类的设计以及二叉树遍历 要完成二叉树的类设计&#xff0c;最好把链表下的Node.js复制过来&#xff0c;相比链表的结点&#xff0c;二叉树仅仅是多了一个结点指针而已。略加修改后&#xff0c;就是&#xff1a; function TNODE(DATA) { this.DataDATA; this.lChildnu…

Fiddler之解决https链接返回数据显示乱码问题

1 、问题 我网页访问淘宝&#xff0c;然后F12查看关键链接&#xff0c;返回的数据里面有json各式的数据&#xff0c;然后我通过关键字在Fiddler里面找到链接&#xff0c;然后查看返回的内容是乱码。 2 、解决办法 然后这样设置&#xff0c;再去查看SyntaxView或者Raw都可以看到…

android上传图片被旋转,input上传照片旋转解决办法

需求很简单&#xff1a;h5拍照上传照片&#xff0c;然后显示出来问题在&#xff1a;上传之后的图片在PC&#xff0c;IOS端均能正常显示&#xff0c;Android端显示的则是被旋转90度的。直接上代码下面这个方法传入file对象&#xff0c;然后会去除掉照片中的exIf信息&#xff0c;…

(12)python 的列表我从没想过会那么好用

本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新&#xff0c;包括别的语言以及实战都将使用对话的方式进行教学&#xff0c;基础编程语言教学适用于零基础小白&#xff0c;之后实战课程也将会逐步更新。 若…

如何优雅的跨 Namespace 同步 Secret 和 ConfigMap?

Secret 和 ConfigMap 资源对象是命名空间级别的。它们只能被同一命名空间中的 Pod 引用。所以有时候不得不手动为每个命名空间创建它们。但有很多场景&#xff0c;我们想让它们是全局的&#xff0c;至少可以是跨命名空间共享的 Secret 和 ConfigMap&#xff0c;例如这些场景&am…

定量遥感:计算地方时和太阳高度角(C++代码)

在定量遥感中,通常需要计算地方时和太阳高度角,本文采用C++语言实现。 #include <cmath> #include <iostream> #include <fstream> using namespace std; void main() {int JD,NF,Y,R,s[5],F[5];float JF,WD;float N0;ifstream data1("d:\\result\\da…

html5 语义化标签

html5 语义化标签 在HTML 5出来之前&#xff0c;我们用div来表示页面章节&#xff0c;但是这些div都没有实际意义。&#xff08;即使我们用css样式的id和class形容这块内容的意义&#xff09;。这些标签只是我们提供给浏览器的指令&#xff0c;只是定义一个网页的某些部分。但…