【2037】利用字符串处理,输出x+y的结果
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;
}
【2037】利用字符串处理,输出x+y的结果的更多相关文章
- 优化php代码 - 字符串echo输出 逗号也可作php连接符
2016年12月12日10:00:16 ====================== 网页访问速度的提升,是可以通过代码的优化来实现的.代码的优化,并不是说代码越少越好,而是主要看代码的运行能力和执行 ...
- Java基础 -- 字符串(格式化输出、正则表达式)
一 字符串 1.不可变String String对象是不可变的,查看JDK文档你就会发现,String类中每一个看起来会修改String值的方法,实际上都是创建一个全新的String对象,以包含修改后 ...
- 接口(Interfaces)与反射(reflection) 如何利用字符串驱动不同的事件 动态地导入函数、模块
标准库内部如何实现接口的 package main import ( "fmt" "io" "net/http" "os" ...
- 编程算法基地-2.1利用字符串API
2.1利用字符串API 字符串是Java类型最常用.并且是复合类型 串非常经常用于,其最佳API熟悉文档. 推断串中有没有反复的字符 String s ="abcdebxyz"; ...
- python 使用json.dumps() 的indent 参数,获得漂亮的格式化字符串后输出
想获得漂亮的格式化字符串后输出,可以使用json.dumps() 的indent 参数.它会使得输出和pprint() 函数效果类似 >>> data {'age': 4, 'nam ...
- 字符串分隔 ->连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组:•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理. 输入描述: 连续输入字符串(输入2次,每个字符串长度小于100 ...
- [JS] 如何自定义字符串格式化输出
在其他语言中十分常见的字符串格式化输出,居然在 Javascript 中不见踪影,于是决定自己实现该方法,以下就是个人编写的最简洁实现: String.prototype.format = funct ...
- js 获取字符串的 像素 宽度 ----字符串格式化输出
function getLenPx(str, font_size) { var str_leng = str.replace(/[^\x00-\xff]/gi, 'aa').length; retur ...
- C语言中以字符串形式输出枚举变量
C语言中以字符串形式输出枚举变量 摘自:https://blog.csdn.net/haifeilang/article/details/41079255 2014年11月13日 15:17:20 h ...
- C#根据用户输入字符串,输出大写字母有几个,小写字母有几个
static void Main(string[] args) { // 根据用户输入字符串,输出大写字母有几个,小写字母有几个. Console.WriteLine("请输入一行英文代码& ...
随机推荐
- 【Uva 1289】Stacking Plates
[Link]: [Description] 有n(1≤n≤50)堆盘子,第i堆盘子有hi个盘子(1≤hi≤50),从上到下直径不减.所有盘 子的直径均不超过10000.有如下两种操作. split:把 ...
- POJ 1101 The Game(BFS+判方向)
The Game Description One morning, you wake up and think: "I am such a good programmer. Why ...
- MSSQL相关用法
一.分页查询 方式一(row_number): SELECT TOP pageSize * FROM (SELECT row_number() OVER (ORDER BY orderColumn) ...
- php学习笔记4
PHP数据类型: String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值). 说明:var ...
- 二维LIS(CDQ分治)
题目描述 给定一个长度为N的序列S,S的每个元素pi是一个二元组(xi,yi),定义pi<pj当且仅当xi<xj并且yi<yj,求S的最长上升子序列长度 输入格式 第一行一个N,表示 ...
- prettyJson V7.1 使用
头文件 #include "document.h" #include "prettywriter.h" #include "filereadstrea ...
- HDU——T 2824 The Euler function
http://acm.hdu.edu.cn/showproblem.php?pid=2824 Time Limit: 2000/1000 MS (Java/Others) Memory Limi ...
- 洛谷——P3819 松江1843路
https://www.luogu.org/problem/show?pid=3819 题目描述 涞坊路是一条长L米的道路,道路上的坐标范围从0到L,路上有N座房子,第i座房子建在坐标为x[i]的地方 ...
- 洛谷 P1308 统计单词数
P1308 统计单词数 题目描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数. 现在,请你编程实现这一功能,具体要求是:给定 ...
- 【Unity3D自学记录】鼠标移动三维物体
创建一个脚本.例如以下: using UnityEngine; using System.Collections; public class OnMouse : MonoBehaviour { IEn ...