算法分析---回文数判断
来源:互联网 发布:centos 离线安装mysql 编辑:程序博客网 时间:2024/05/11 09:37
有这样一类数字,他们顺着看和倒着看是相同的数,例如:1111,1221,2332等,这样的数字就称为:回文数字。
回文数的判断有多种算法,直观一点的就是将数字顺序颠倒后再与原数字进行比较,如果相等说明该数字是回文数字,如何颠倒数字的顺序便是难点。
比如一个数12345。
12345 % 10 得到的是个位上的5
12345 / 10 得到1234
1234 % 10 得到十位上的4
1234 / 10 得到123
123 % 10 得到百位上的3
123 / 10 得到12
12 % 10 得到千位上的2
12 / 10 得到1
1 % 10 得到万位上的1
可见通过求余运算来求各个位上的数,通过除法运算来降位(指的是由万位降到千位,千位再降到百位)
现在开始颠倒数字
第一步:
12345 % 10 = 5;求个位上的数
12345 / 10 =1234;降位
第二步:
1234 % 10 = 4;求十位上的数
1234 / 10 = 123; 降位
5 * 10 + 4 = 54;开始颠倒
第三步:
123 % 10 = 3; 求百位上的数
123 / 10 = 12; 降位
54 * 10 + 3 = 543; 继续颠倒
第四步:
12 % 10 = 2; 求千位上的数
12 / 10 = 1; 降位
543 * 10 + 2 = 5432; 继续颠倒
第五步:
1 % 10 = 1; 求万位上的数
1 / 10 = 0; 降位
5432 * 10 + 1 = 54321; 颠倒完毕
#include <stdio.h> int IsPalindrome(int iNumber); void main(){ if(IsPalindrome(121)){ printf("是回文数\n"); } else{ printf("不是回文数\n"); } } int IsPalindrome(int iNumber){ //判断是否为回文数的函数 int temp=0; int number = iNumber; while(number){ //颠倒数后保存到temp中 temp=temp*10+(number%10); number=number/10; } if(iNumber==temp) //是回文数,返回1 return 1; else return 0; }
阅读全文
0 0
- 算法分析---回文数判断
- 算法分析---回文数判断
- 判断回文数的简便算法
- 算法设计学习笔记:回文数与回文字符串判断
- 回文/回文数的判断
- 回文数回文字符串判断
- 回文数判断
- 判断是不是回文数
- 回文数判断
- 判断回文数
- 判断回文数
- 判断回文数
- 回文数判断
- 如何判断回文数
- C判断回文数
- 判断回文数
- 判断回文数
- 回文数的判断
- 解决SwipeRefreshLayout下拉刷新与SwipeMenuListView的冲突
- 间断初值双曲守恒问题的Lax-Friedrichs和后向欧拉数值解法
- Java Web后端--入职技能任务单(新增插件信息)八
- Vue项目启动时报 Error: spawn EACCES
- 1.SC命令——图形缩放
- 算法分析---回文数判断
- qnx efs文件系统binary修复
- Linux centos7环境下MySQL安装教程
- Linux指令用之记之-shell双引号单引号区别
- hadoop2.8.0 安装与环境搭建
- IMX.6Q 移植FFmpeg libx264软件编码 libmp3lame
- 对搜索的疑惑
- 学习回顾算法(插值查找算法)
- Git 的 4 个阶段的撤销更改