RSS
![Table_bottom](/images/table_bottom.jpg?1375031774)
linjiazhen
![Avatar](/user_files/linjiazhen/config/avatar.png?1375032418)
![Table_bottom](/images/table_bottom.jpg?1375031774)
分类
![Table_bottom](/images/table_bottom.jpg?1375031774)
标签云
![Table_bottom](/images/table_bottom.jpg?1375031774)
搜索
![Table_bottom](/images/table_bottom.jpg?1375031774)
随机文章
![Table_bottom](/images/table_bottom.jpg?1375031774)
最新评论
![Table_bottom](/images/table_bottom.jpg?1375031774)
最新留言
![Table_bottom](/images/table_bottom.jpg?1375031774)
链接
![Table_bottom](/images/table_bottom.jpg?1375031774)
计数器
145631
![Table_bottom](/images/table_bottom.jpg?1375031774)
UVA 10035: Primary Arithmetic
Jasonlin
posted @ 2011年3月27日 13:30
in UVA
, 2786 阅读
题目大意:
小学生问题,两个数加起来求进位的次数,如999+11进位3次。
解题思路:
从低位开始加,大于等于10就进位。不小心错了一次,要加到最长那个数最高位为止,每次都有一些地方让我不能1Y。
要是题目每个数很大,那就必须要用高精度算法处理啦。
解题代码:
#include<iostream> using namespace std; typedef long long ll; int main(){ ll a,b; while(cin>>a>>b&&a+b){ int c=0,count=0; while(a||b){ c=(a%10+b%10+c)>=10; if(c) count++; a/=10; b/=10; } if(count==0) cout<<"No carry operation."<<endl; else if(count==1) cout<<"1 carry operation."<<endl; else cout<<count<<" carry operations."<<endl; } }
扩展知识:
http://wenku.baidu.com/view/a03d3ccfa1c7aa00b52acb46.html
http://www.cnblogs.com/ghost-draw-sign/articles/1533798.html