您的位置:首页 > 其它

【算法竞赛】:进位数统计

2015-11-12 14:14 399 查看

题目

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

思路

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

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

请详细看代码

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

代码

[code]#include <iostream>
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<<ans<<endl;
    }
}


运行截图:



说明如上是正确的 = =
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: