时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 5355 | 通过数 : 737
题目描述小学生在学多位数的加法时,是将两个加数右对齐,然后从右往左一位一位地加。多位数的加法经常会有进位
,如果对齐的两位相加结果大于或等于10就向左边一位进一。任务是:给定两个加数,统计进位的次数。
输入要求输入的每一行是两个无符号整数,不超过20位。最后一行为两个0,表示输入结束。输出要求
对每一行(最后一行除外)的两个加数,计算它们进行加法运算时进位的次数并输出。输入样例
123 456 555 555 123 594 0 0输出样例
0 carry operation(s) 3 carry operation(s) 1 carry operation(s)
#includeusing namespace std; int add(vector &A,vector &B) { int t=0,sum=0; for(int i=0;i=10) { sum++; } t/=10; } return sum; } int main() { string a,b; while(cin>>a>>b) { if(a=="0"&&b=="0") break; vector A,B; for(int i=a.size()-1;i>=0;i--) A.push_back(a[i]-'0'); for(int i=b.size()-1;i>=0;i--) B.push_back(b[i]-'0'); int c=add(A,B); printf("%d carry operation(s)n",c); } return 0; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)