小X的加法难题
背景
第一节编程课上,老师要求大家写一个程序计算两个正整数的和。
看到小X不屑的眼神后,老师决定给小X增加难度。以求 12 和 3 的和为例,老师在 12+3 这个
原始式子里加入一些无用的空格,再把它交给小X。
这下小X傻眼了,希望你帮帮他。
描述
计算所给2数之和。
输入格式
第一行包含一个字符串,表示老师给小X的式子。
输出格式
8
若式子的结果不超过 10 ,则第一行包含一个整数,表示式子的结果;否则第一行包含一个字符串
“Large”。
样例数据 1
输入
12345+54321
输出
66666
样例数据 2
输入
8 0 00 0 0 00 + 2 0 00 0 0 01
输出
Large
备注
8
对于 30%的数据,式子中不包含无用的空格,式子的结果不超过 10 。
对于 100%的数据,字符串长度不超过 100。
思路
题目略水,暴力都不需要高精度
代码
#include<iostream> #include<cstdlib> #include<cstdio> using namespace std; long long a,b; string s; int ak,bk,sk; int main() { getline(cin,s); ak=0;bk=0; sk=0; while (s[sk]!='+') { if (s[sk]!=' ') {ak++;;a=a*10+int(s[sk])-int('0');} sk++; if (ak>12) { cout<<"Large"<<endl; return 0; } } sk++; while (sk<=s.length()-1) { if (s[sk]!=' ') {bk++;b=b*10+int(s[sk])-int('0');} sk++; if (bk>12) { cout<<"Large"<<endl; return 0; } } a+=b; if ((a-100000000)>0) cout<<"Large"<<endl; else cout<<a<<endl; return 0; }