学习编程也有一段时间了,随着学习的不断深入,我越来越体会到了算法的重要性,最近遇到了一些非常有意思的算法,比如打印水仙花数、将数字逆置,在这两个算法中会用到一个数字钟每一位的值

如:判断数字123是否是水仙花数需要得到每一位的数字

通常计算每一位的数字的算法是:

个位:a = 123 % 10 = 3

十位:b  = 123 %100 / 10 = 2

百位::c = 123 % 100 = 2

随着位数的越来越大,这种方法满足不了程序的需求

比如计算:123445677777777777777777777每一位的数字使用上面的方法肯定是不行的

最近我学了一种比较好的方法:

为了便于理解这种方法,我用前面的例子使用这种方法计算123中每一位的值

需要计算的数字:

1 2 3

首先定义变量  j = 123

m = 0

第一步:求出个位上的数字

m = j % 10 = 123 % 10 = 3

j = j / 10 =  123 / 10 = 12;//将三位数变成两位数

第二步:求出十位上的数字

m = j % 10 = 12 % 10 = 2

j = j / 10 = 12 / 10 = 1//将两位数变成一位数

第三步:求出百位上的数字

m = j % 10 = 1 % 10 = 1

j = j / 10 = 1 / 10 = 0//将数字清零

最后得到个位上的数字是3,十位上的数字是2, 百位上的数字是1

程序代码:

#include <stdio.h>
#include <stdlib.h>void main()
{int num;int i = 0;printf("请输入一个数字:");scanf("%d", &num);while(num>0){i = num % 10;//计算每一位上的数字printf("%d\n", i);//打印每一位数字num = num / 10;//实现位与位之间的遍历}system("pause");
}

测试程序:
当输入123时

当输入一个比多位数时:比如12341221



得到一个数字中每一位的数字相关推荐

  1. lua 从一串数字中取出偶数位的数字_为什么JavaScript中 0.1 0.2 不等于0.3?

    在 js 中进行数学的运算时,会出现0.1+0.2=0.300000000000000004的结果,一开始认为是浮点数的二进制存储导致的精度问题,但这似乎不能很好的解释为什么在同样的存储方式下0.3+ ...

  2. c语言两字符串转数字后相加,一个觉得很难的C语言问题。对两个数字字符串相加。 C语言 如何把一个字符串中相连的两个数字转化为一......

    导航:网站首页 > 一个觉得很难的C语言问题.对两个数字字符串相加. C语言 如何把一个字符串中相连的两个数字转化为一... 一个觉得很难的C语言问题.对两个数字字符串相加. C语言 如何把一个 ...

  3. CF628D Magic Numbers (数据大+数位dp)求[a,b]中,偶数位的数字都是d,其余为数字都不是d,且能被m整除的数的个数...

    题意:求[a,b]中,偶数位的数字都是d,其余为数字都不是d,且能被m整除的数的个数(这里的偶数位是的是从高位往低位数的偶数位).a,b<10^2000,m≤2000,0≤d≤9 a,b< ...

  4. 【LeetCode】剑指 Offer 44. 数字序列中某一位的数字

    [LeetCode]剑指 Offer 44. 数字序列中某一位的数字 文章目录 [LeetCode]剑指 Offer 44. 数字序列中某一位的数字 package offer;public clas ...

  5. 寻找神秘4位数:在0-9十个数字中任意选择4个数字,如选2,9,8,4这四个数字,组成最大的数是9842,最小的数是2489,然后相减,再把得到的4位数组成的最大与最小值相减

    寻找神秘4位数:在0-9十个数字中任意选择4个数字,如选2,9,8,4这四个数字,组成最大的数是9842,最小的数是2489,然后相减,再把得到的4位数组成的最大与最小值相减,在这样重复的过程中,你能 ...

  6. (每天一小步,进步一大步)NC291 数字序列中某一位的数字

    数字以 0123456789101112131415... 的格式作为一个字符序列,在这个序列中第 2 位(从下标 0 开始计算)是 2 ,第 10 位是 1 ,第 13 位是 1 ,以此类题,请你输 ...

  7. 【LeetCode笔记】剑指 Offer 44. 数字序列中某一位的数字(Java、偏数学)

    文章目录 题目描述 思路 && 代码 题目描述 比较偏数学的一道题..众所周知这类题代码量都不大,但是就是难想= = 思路 && 代码 这篇题解写得很好- 建议还是直接 ...

  8. java 数字 下划线_为什么要在Java SE 7的数字中使用下划线-在数字文字中使用下划线...

    java 数字 下划线 JDK 1.7发行版引入了几个有用的功能,尽管其中大多数都是语法糖,但使用该功能可以大大提高可读性和代码质量. 这样的功能之一是在数字文字中引入下划线 . 从Java 7开始, ...

  9. 为什么要在Java SE 7的数字中使用下划线-在数字文字中使用下划线

    JDK 1.7发行版引入了几个有用的功能,尽管其中大多数都是语法糖,但使用该功能可以大大提高可读性和代码质量. 这样的功能之一是在数字文字中引入下划线 . 从Java 7开始,您可以在Java源代码中 ...

最新文章

  1. exec的不同实现--鸠占鹊巢还是功成身退
  2. Zabbix实战之客户端自动注册
  3. ISE简介及其下载 安装 和谐 与 卸载
  4. jmeter+maven+jenkins自动化接口测试(下)
  5. 原来做的一个语义搜索软件的界面
  6. Activiti 多个并发子流程的应用
  7. mysql多个外键删除设置_Mysql在删除集上使用多个外键创建表
  8. css样式,后代选择器
  9. String,StringBuffer,StringBuilder效率优先关系说明
  10. Juniper CoS 基本配置说明
  11. ttf字体,简单获取
  12. UTAU - 完整无乱码汉化策略及资源配布
  13. 软件测试需求分析方法
  14. 大学生做 app 开发,用云服务和租赁服务器,哪个更合适?
  15. [转] 大学的终结—1950年代初期的“院系调整”
  16. Python崛金系列--4.python量化股票
  17. 树莓派安装MPlayer播放器
  18. openssl命令查看证书有效期_使用 openssl 生成证书
  19. c++跟踪调试怎么用 dev_DEVC++调试方法
  20. 怎样使用计算机求一个数的立方根,计算机求数立方根的数学教案

热门文章

  1. APISpace 邮编查询API
  2. 应用程序性能监测—云安虚拟化运维监测系统
  3. Tecplot如何设置图例 并更改图例边框大小/字框占比
  4. 乔布斯的简历,看完你会沉默……
  5. FS_I10X接收机通道说明
  6. 计算机 精度,精度计算器
  7. SRM 624 Building Heights DivI 解读
  8. Vue项目 .env .env.development .env.production 配置说明
  9. yum mysql 如何启动_linux下使用yum安装mysql以及启动、登录和远程访问
  10. 《17天搞定GRE单词》