得到一个数字中每一位的数字
来源:互联网 发布:英格蜜儿 知乎 编辑:程序博客网 时间:2024/05/17 07:52
学习编程也有一段时间了,随着学习的不断深入,我越来越体会到了算法的重要性,最近遇到了一些非常有意思的算法,比如打印水仙花数、将数字逆置,在这两个算法中会用到一个数字钟每一位的值
如:判断数字123是否是水仙花数需要得到每一位的数字
通常计算每一位的数字的算法是:
个位:a = 123 % 10 = 3
十位:b = 123 %100 / 10 = 2
百位::c = 123 % 100 = 2
随着位数的越来越大,这种方法满足不了程序的需求
比如计算:123445677777777777777777777每一位的数字使用上面的方法肯定是不行的
最近我学了一种比较好的方法:
为了便于理解这种方法,我用前面的例子使用这种方法计算123中每一位的值
需要计算的数字:
首先定义变量 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
0 0
- 得到一个数字中每一位的数字
- 提取数字的每一位
- 把一个数字的每一位存储到一个数组中
- 怎样计算一个整数的位数&并把每一位上的数字保存下来
- 怎样计算一个整数的位数&并把每一位上的数字保存下来
- 提示用户输入的一个长度8位正整数数字 , 我们来统计这个数字中的每一位上出现的数字的重复次数 :
- C语言中求整形数中每一位的数字
- 获取int类型数据的每一位的数字
- 输出整数的位数和每一位的数字
- 得到字符串的每一位
- 运用递归给定一个int型的整数,倒序输出他的每一位上的数字
- 数字字符串转数组提取每一位
- 题目:在数组中,数字减去它右边的数字得到一个数对之差。
- 趣题:每一列中至少有一个数字0或数字9
- 给定一个整数,把整数中包含的每一个数字放到一个数组中(不要把数字转化为字符串处理)
- 在html中写出一个数字的各个位的数字,并把他们相加
- 如何得到指定数字中任意几个数字的组合
- 如何得到指定数字中任意几个数字的组合
- Enumerating All Device Drivers in the System
- 雅虎团队的23条网站性能优化军规
- C经典之4-Bit inverse---ShinePans
- Matlab中对画出来的图片(plot)进行坐标轴的编辑
- UESTC The Urge to Merge(状态压缩)
- 得到一个数字中每一位的数字
- css position取值的含义和理解
- 网络资源整理
- openfire 详细介绍
- Qt Creator + MinGW + OpenCV2.43 (自编译) 环境配置
- U3D学习心得-----资源管理:模型和角色动画的输出设置(上)
- LeetCode--Binary Tree Level Order Traversal
- 整理和收集一些私有api知识和技巧,不可上传AppStore,否则会被拒绝
- PNG24图片兼容IE6解决办法