计算两个数相加时进位的个数
2015-11-19 09:18
183 查看
/** 计算两个数相加时进位的个数 */ #include <iostream> #include <stdio.h> using namespace std; int main() { freopen("in.txt","r",stdin); int a,b; while(scanf("%d%d",&a,&b) && (a != 0 || b!= 0)) { int c = 0,ans = 0; for(int i = 9;i >= 0;i ++) { c = (a % 10 + b % 10 + c) >9 ? 1 : 0; ans += c; a /= 10; b /= 10; } printf("%d\n",ans); } return 0; }
因为给的数的最多为9位 所以i的循环到9 表示将每一位参与到运算
c = (a % 10 + b % 10 + c) >9 ? 1 : 0; c值用来判断这两位数相加是否产生进位 ans += c; ans用来表示总共的进位个数 a /= 10;b /= 10; 更新到a b 的下一位
相关文章推荐
- oracle去重
- JFreeChart学习
- 一鼓作气写文章/代码
- Python单元测试框架之pytest -- fixtures
- CentOS 5.x版本升级PHP
- [转]kindeditor编辑器的工具栏items的去和留
- 浅谈JAVA二维数组
- 深度学习基础1(神经网络)
- C# Work PPT to PDF
- TCPL 行计数
- 备考 19号
- CentOS 6.X版本升级PHP
- 相关算子、卷积算子、边缘效应
- 【Educational Codeforces Round 1B】【字符串平移 水题】Queries on a String 字符串平移水题
- 动态监听网络状态
- IE9 bug总
- textarea如何实现高度自适应?
- css 文本缩进 input label 块级元素
- iOS懒加载
- LINUX下文件字符集编码查看与编码转换