2018年长沙理工大学第十三届程序设计竞赛 B-奇怪的加法
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
64bit IO Format: %lld
题目描述
zhrt是数学大佬,但有一天一道奇怪的数学题把他难住了:题目要求计算两个十进制数相加后的结果,但在本题中是不需要进位的!
现在zhrt弯下他的小蛮腰向你请教,你能帮帮他吗?
现在zhrt弯下他的小蛮腰向你请教,你能帮帮他吗?
输入描述:
输入有多组(组数不超过1000),每组占一行,每行有2个正整数A和B。(A,B<=1e9)
输出描述:
每组输出占一行,输出题目中A和B相加的结果。
示例1
输入
123 321 999 1 99 11
输出
444 990 0
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include <iostream> #include <stdio.h> #include <cstring> #include <string.h> #include <math.h> using namespace std; int main() { long long a,b; while(cin>>a>>b) { long long c=0,k=0,t=0,s; while(a>0&&b>0) { s=1; for(int i=0;i<t;i++) s=s*10; k=(a%10+b%10)%10; a=a/10; b=b/10; if(t!=0) { c=c+s*k; } else { c=c+k; } t++; } while(a>0) { s=1; for(int i=0;i<t;i++) s=s*10; k=a%10; a=a/10; c=s*k+c; t++; } while(b>0) { s=1; for(int i=0;i<t;i++) s=s*10; k=b%10; b=b/10; c=s*k+c; t++; } cout<<c<<endl; } return 0; }
【分析】
这个题目就是别着急,把握住细节,要是过不了样例就仔细分析一下,还有pow会让数据丢失导致样例答案是错的,所以还是要注意数据类型,最近两次比赛总是水题用去比赛的很多时间,遇到问题还是要静下心重新思考一遍这道题,可能只是一点细节的错误。