【2037】利用字符串处理,输出x+y的结果
2017-10-06 19:23
162 查看
Time Limit: 1 second
Memory Limit: 50 MB
【问题描述】
输入两个整数x,y输出它们的和。(0<=x,y<=10的100次幂)【输入】
共2行;
第一行为x。
第二行为y。
【输出】
包含1行,一个整数,表示求得的和。
【输入样例】
123 1234
【输出样例1】
1357 回车结束
【题解】
高精度加法。
原理:
如两个加数分别为
789543
1111111
将他们以整数形式倒着存入两个数组 数组的每一个位置存一位数字
a[] = 345987
b[] = 1111111
加的时候直接c[i]+=a[i]+b[i]就可以,因为是倒着存 进位可以直接进到下一位。
【代码】
#include <cstdio> #include <iostream> #include <string> using namespace std; const int MAXN = 400; string s1,s2; int a[MAXN],b[MAXN],c[MAXN],l1,l2,l3; void input_data() //以字符串的形式输入数据 { cin >> s1; cin >> s2; l1 = s1.size();//获取数字的长度 l2 = s2.size(); for (int i = 1;i <= l1;i++) //存入一个整形数组 a[i] = s1[l1-i] - '0'; for (int i = 1;i <= l2;i++) b[i] = s2[l2-i] - '0'; if (l1 > l2) //获取两个数中那个较长的数字 l3 = l1; else l3 = l2; } void get_ans() { for (int i = 1;i <= l3;i++) //初始化一下答案数组 c[i] = 0; for (int i = 1;i <= l3;i++) //做加法 { c[i] = c[i] + a[i] + b[i]; c[i+1] = c[i+1] + (c[i] /10); //处理进位问题 c[i] = c[i] % 10; } while (c[l3+1]>0) //不断进位。 { l3++; c[l3+1] = c[l3+1] + c[l3]/10; c[l3] = c[l3] % 10; } } void output_ans() { for (int i = l3;i >= 1;i--) printf("%d",c[i]); printf("\n"); } int main() { //freopen("F:\\rush.txt","r",stdin); input_data(); get_ans(); output_ans(); return 0; }
相关文章推荐
- 假设有一个字符串aabcad,请写一段程序,去掉字符串中不相邻的重复字符串,即上述字符串处理之后的输出结果为:aabcd
- 利用jquery对MVC输出的json对象进行处理,修改日期格式及取字符串的一部分
- 设计一个程序,从键盘上输入若干字符串,利用算法库中的查找函数对给定的字符串进行查找,将查找后的结果输出
- 利用Python分析GP服务运行结果的输出路径 & 实现服务输出路径的本地化 分类: Python ArcGIS for desktop ArcGIS for server 2015-08-06 19:49 3人阅读 评论(0) 收藏
- 给定一个字符串,字符串中的*可以替换成0或1,输出所有可能的结果
- 【DButils学习之】利用ResultSetHandler各实现类来处理查询结果
- 从web.config文件中 截取字符串数组,输出结果
- 利用指针编写主程序将输入字符串反序输出。
- <Boost> 字符串处理和格式化输出
- 批处理将字符串输出到Windows剪贴板
- 练习:判断字符串“mingrikejijavabu”中,字符“i”出现了几次,并将结果输出。
- 字符串的输出处理
- 利用jsoup处理字符串
- 【DButils学习之】利用ResultSetHandler各实现类来处理查询结果
- 【DButils学习之】利用ResultSetHandler各实现类来处理查询结果
- 8.9 编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,并输出结果。(改)
- 开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。
- 第二周第三天([输入一个字符串,然后输出字符串的运算结果] [object][异常][IO流,读取D盘某个文件])
- 批处理将字符串输出到Windows剪贴板
- 华为:通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串