2018年长沙理工大学第十三届程序设计竞赛 B-奇怪的加法
时间限制:C/C++ 1秒,其他语言2秒
输入有多组(组数不超过1000),每组占一行,每行有2个正整数A和B。(A,B<=1e9)
每组输出占一行,输出题目中A和B相加的结果。
123 321 999 1 99 11
444 990 0
#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; }View Code
【分析】
这个题目就是别着急,把握住细节,要是过不了样例就仔细分析一下,还有pow会让数据丢失导致样例答案是错的,所以还是要注意数据类型,最近两次比赛总是水题用去比赛的很多时间,遇到问题还是要静下心重新思考一遍这道题,可能只是一点细节的错误。
优质内容筛选与推荐>>