博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【算法竞赛】:进位数统计
阅读量:3705 次
发布时间:2019-05-21

本文共 546 字,大约阅读时间需要 1 分钟。

题目

给出两个数a,b,例如a=123,b = 456这两个数,算出这两个数相加过程中产生了多少次进位?

思路

思路就是最简单的,从个位开始加,然后算出每次算完的进位用c来存储,c只能为0或者1,然后算完之后C更新,如果C==1,表示有进位,然后全局变量ans(存储最终进位结果的)++;

技巧性的东西在于如何用一个简单的循环做到从个位数相加?

请详细看代码
可能上段说的不是很明白,但是看了代码就懂了 = =

代码

#include 
using namespace std;int main(){ int a,b; while(cin>>a>>b&&(a!=0 &&b!=0)){ int c=0,ans=0; while(a!=0 || b!=0){ c=(a%10)+(b%10)+c>9?1:0; //注意这里后面一定要加上上一次运算产生的进位,这个技巧也用的很好 = = ans+=c; a/=10; b/=10; } cout<
<

运行截图:

这里写图片描述

说明如上是正确的 = =

你可能感兴趣的文章
关于String==和String.intern()的面试题,一文读懂
查看>>
new Hashmap 和 new ArrayList时设置初始化容量多少合适
查看>>
RocketMQ概念简介
查看>>
关于BIO和NIO的理解与总结(网络IO)
查看>>
STL应用之stack、queue、priority_queue容器适配器
查看>>
继承的学习——C++
查看>>
实现一个minishell小程序
查看>>
设计模式(单例模式)——Linux系统编程
查看>>
网络基础1(协议、协议模型、IP、Port、网络字节序)——Linux网络编程
查看>>
网络基础2(ARP、NAT、DNS协议)——Linux网络编程
查看>>
UDP、TCP协议——Linux网络编程
查看>>
HTTP、HTTPS协议——Linux网络编程
查看>>
string类——C++
查看>>
SpringMVC入门(springMVC的环境配置和入门程序以及简单的流程)
查看>>
PigyChan_LeetCode 725. 分隔链表
查看>>
PigyChan_LeetCode 面试题 02.08. 环路检测
查看>>
PigyChan_LeetCode 109. 有序链表转换二叉搜索树
查看>>
PigyChan_LeetCode 143. 重排链表
查看>>
PigyChan_LeetCode 24. 两两交换链表中的节点
查看>>
PigyChan_LeetCode 445. 两数相加 II
查看>>