C语言实现不使用字符串的整数回文数判断

题目来源:LeetCode题库
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

示例 1:

输入: 121
输出: true

示例 2:

输入: -121
输出: false

解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:

输入: 10
输出: false

解释: 从右向左读, 为 01 。因此它不是一个回文数。
进阶:
不将整数转为字符串来解决这个问题

思路:获取输入数值后,需要判断该数值是否是负数,如果是负数则不需要进行其他操作直接返回false,如果不是则将输入的数值进行反转,因为反转后的数值可能会越界导致溢出,所以需要用那个更长的数据类型来接收,使用long类型变量来作为接收反转的数值,最后再将反转后的数值与输入值进行对比。进行反转操作时使用while(y > 0)的好处是:一个可以作为反转操作的结束判断,一个是可以对输入数如果是0的话的,直接就返回true

代码实现:

#include<stdio.h>
#include<limits.h>
#include <stdbool.h>// 判断是否是回文数
_Bool isPalindrome(int x){int y = 0;long tmp = 0;// 输入的是负数,直接返回错误if(x < 0){return false;}y = x;// 输入为0直接返回正确while(y > 0){tmp = tmp * 10 + y % 10;y = y / 10;}return tmp == x ? true : false;
}int main(void)
{int num = 0;_Bool result;printf("\r\n请输入一个数字:");scanf("%d", &num);result = isPalindrome(num);printf("\r\n%d回文数的判断结果为:%d\r\n", num, result);return 0;
}

执行用时: 12 ms
内存消耗: 5.3 MB

注意:在LeetCode运行程序需要为long类型变量赋初值,否则会出现错误

C语言实现回文数判断相关推荐

  1. 25.(C语言)回文数判断万用公式

    1.基本思路 回文数:指正序(从左向右)和倒序(从右向左)读都是一样的整数. 做法:(倒序)每次取出个位的数,让它每次乘10,当这个数为0时,判断跟(正序)比较是否相同. 2.代码展示 #includ ...

  2. C语言函数、指针应用程序设计——回文数判断and检验子串and仓库库存管理程序

    最全C系列题目!从0到管理系统 一.C语言数据类型及输出--体重是否正常.球的体积.计算存银行利息and浮点数长度与精度 二.C语言运算符与表达式--输出逆序数and二进制包含0和1的数量and判断是 ...

  3. 回文数判断 : C语言

    回文数判断 : C语言 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 题目解读: 该题将整数转换为字符串再进行判断较为简单(需要开辟新的内存,存在优化的地方 ...

  4. 【C语言】之实现回文数判断

    /** 文件名:palindrome.c* 功能描述:判断一个正整数是否为回文数* 回文数:121 12344321 3443* 编写人:王廷云* 编写日期:2017-1-10 */ #include ...

  5. C++ 栈实现回文数判断

    C++ 栈实现回文数判断 #include<iostream> #include<string> using namespace std; class Point{char d ...

  6. python回文数判断_python回文数判断

    什么是回文数? 有这样一类数,他们顺着看和倒着看是相同的数,例如:12321,1221,2332等,这样的数字就称为:回文数 输入一个5位数,用python判断它是不是回文数.即12321是回文数,个 ...

  7. python切片,回文数判断

    切片: object[start_index : end_index : step] 左闭右开,从start_index到end_index-1,按照step步长得到新的对象. 实现回文数判断: a= ...

  8. 回文数判断---c++学习day01

    1.输入一个数,判断是不是回文数 //判断回文数 #include<iostream> using namespace std; bool symm(unsigned n) {unsign ...

  9. Python回文数判断

    Python回文数判断 我们先来了解一下什么事回文数字,回文数字是指正着读和倒着读都能读的通的数字,那么我们怎么用Python判断1-1000的数字里面有多少回文数呢? l = [i for i in ...

最新文章

  1. Android 卡片翻转动画效果
  2. JVM监控-命令行篇
  3. echarts实现给图例添加单位、百分比,以及图例文字过长显示省略号
  4. 淘宝客静态单页_单页应用程序的Spring Boot静态Web资源处理
  5. linux网线连接树莓派,3、树莓派使用网线连接路由器获取网络的讲解
  6. 如何用 Python 拆分表格并发送邮件?
  7. 【c++leetcode】翻转链表
  8. 宇宙最强vscode教程(基础篇)
  9. 在EF4.1的DBContext中实现事务处理(BeginTransaction)和直接执行SQL语句的示例
  10. 复盘图像双线性插值推导细节
  11. 【IoT】产品设计:OEM、ODM、EMS 的区别是什么?
  12. 为什么阿里 P7 都找不到工作了?
  13. python3 爬取今日头条文章(巧妙避开as,cp,_signature)
  14. P3398 仓鼠找sugar(LCA,树剖)
  15. 一喝到威士忌真是什么烦恼都忘了
  16. [转]个人知识管理-Web2.0技术下的一个热点
  17. ERROR: cannot launch node of type [robot_state_publisher/state_publisher]: Cannot locate node of typ
  18. python3的tkinter登录界面设计+mysql数据库的导入数据
  19. 这本书能教会你的小孩如何理财
  20. JAVA毕设合集【20套系统项目】

热门文章

  1. Word文档上方的横线怎么去掉?
  2. 跨域BGP/MPLS IP VPN实验(OptionA方式)
  3. 小心 laravel 模型的 Soft Delete
  4. 微信小程序开发工具的快捷键
  5. 加班最勤奋的往往是失败者,他们只是在拼命杀死自己|真实故事
  6. 《Cisco IOS XR技术精要》一2.2 Cisco IOS XR系统管理器
  7. babylon.js文档笔记
  8. 梦幻西游服务器维护查询,梦幻西游2020年6月9日维护公告 新增转换查询功能
  9. JPEG编解码分析及调试
  10. 京东最新股权曝光:刘强东持股13.8% 有76.1%投票权