codeVS 3116 高精度练习之加法
时间限制:1s 空间限制:128000KB题目等级:黄金 Gold
题目描述
给出两个正整数A和B,计算A+B的值。保证A和B的位数不超过500位。
输入描述
读入两个用空格隔开的正整数
输出描述
输出A+B的值
样例输入
3 12
样例输出
15
解题思路
类比减法,见上一篇博客
AC代码如下:
#include <stdio.h>
#include <string.h>int main()
{char a[505],b[505];scanf("%s%s",a,b);int la=strlen(a),lb=strlen(b);if( la==lb ){for( int i=la-1 ; i>=1 ; --i ){if( ( a[i]-'0' )+( b[i]-'0' )<=9 ){a[i] += b[i]-'0';}else{a[i] += b[i]-'0'-10;++a[i-1];}}if( ( a[0]-'0' )+( b[0]-'0' )>=10 ){a[0] += b[0]-'0'-10;a[504] = '1'; //第0位产生的进位暂存到最后一位}}else{if( la<lb ){//保证a是两数中位数高的串char c[505];strcpy(c,a); strcpy(a,b); strcpy(b,c);//交换字符串a,bint t=la; la=lb; lb=t;//la,lb做相应交换}int i,j;for( i=la-1,j=lb-1 ; j>=0 ; --i,--j ){if( ( a[i]-'0' )+( b[j]-'0' )<=9 ){a[i] += b[j]-'0';}else{a[i] += b[j]-'0'-10;++a[i-1];}}//问题解决:a的剩余位超9for( int k=i;k>=1;--k ){if( a[k]>'9' ){a[k] -= 10;++a[k-1];}}if( a[0]>'9' ){a[0] -= 10;a[504] = '1';}}if( a[504]>='1' && a[504]<='9' ){printf("%c",a[504]);}printf("%s\n",a);return 0;
}
codeVS 3116 高精度练习之加法相关推荐
- 3116 高精度练习之加法
3116 高精度练习之加法 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 给出两个正整数A和B,计算A+B的值.保证A ...
- [CodeVS 1166] 高精度加法
先弄个支持加减和大小比较的manual BigInteger #include<bits/stdc++.h> using namespace std;class BigInteger {p ...
- 任意长度的高精度大整数加法
方法:这里用了数据结构栈,实际上栈更方便实现高精度加法. 步骤:1.第一个数据加数按输入顺序(高位到低位)入栈1.此时栈顶为最低位 2.第二个数据加数按输入顺序(高位到低位)入栈2.此时栈顶为最低位 ...
- codevs 3054 高精度练习-文件操作
时间限制: 1 s 空间限制: 64000 KB 题目等级 : 钻石 Diamond 题目描述 Description 输入一组数据,将每个数据加1后输出 输入描述 Input Descripti ...
- c语言高精度算法(加法)
1.为什么使用高精度算法啊? 在c语言中,int类型取值范围为(-2^31 ~ 2^31-1),而long long类型取值范围也才仅有(-2^63~ 2^63-1),在处理一些较大的数据时,显然仅靠 ...
- 【多题合集】高精度加减乘除
高端:高精度算法,属于处理大数字的数学计算方法.在一般的科学计算中,会经常算到小数点后几百位或者更多,当然也可能是几千亿几百亿的大数字.一般这类数字我们统称为高精度数,高精度算法是用计算机对于超大数据 ...
- CodeVs天梯黄金Gold题解
title: CodeVs天梯之Gold date: 2017-12-28 tags: 天梯 CodesVs categories: OI CodeVs天梯之Gold 2018.01.04 By gw ...
- 高精度阶乘和 高精度算法(c语言)
以前刷oj的时候 遇见一个题目 也就是输入一个数字 判断阶乘和 用高精度计算出S=1!+2!+3!+-+N!(N≤50),其中"!"表示阶乘, 例如:5!=5*4*3*2*1.输入 ...
- A.pro读算法の2:高精度算法
1.1 描述 高精度算法,属于处理大数字的数学计算方法.在一般的科学计算中,会经常算到小数点后几百位或者更多,当然也可能是几千亿几百亿的大数字.一般这类数字我们统称为高精度数,高精度算法是用计算机对于 ...
最新文章
- 某游戏在华为鸿蒙,部分安卓游戏在华为鸿蒙 OS 上运行,被识别成使用 PC 端模拟器...
- 典型的DIV+CSS布局——左中右版式
- 创意组竞赛正式文档中修正内容
- a bytes-like object is required, not 'str' pickle.loads pickle.dumps
- 计算机比赛的评分办法,汉字录入比赛评分规则方案
- pb 更改dropdwonlistbox绑定数据_Blazor 修仙之旅 组件与数据绑定
- 初识ES-安装IK分词器
- SAP CDS view里association和join的区别
- 【渝粤教育】国家开放大学2019年春季 0134-22T劳动法学 参考试题
- python如何连接mysql数据库
- kafka 集群_Kafka集群搭建
- 第十至十二章 算法分析--高阶数据结构
- hprose-php教程,hprose php用户手册
- 智能电话机器人--基于 UniMRCP 实现讯飞 TTS MRCP Server
- QT quick中的登录界面(Rectangle,TextField文本框的使用)
- 下载微信支付平台证书及首次下载报错处理
- mysql _数据库表的创建
- potplayer快捷键
- 虚拟跑步刷步软件下载_小米穿戴2.0最新版下载-小米穿戴2.0新虚拟形象版v2.0.0 安卓版...
- 【概率论】理解贝叶斯(Bayes)公式:为什么疾病检测呈阳性,得这种病的概率却不高?