CNUOJ 2020 LJX的高精度


LJX的高精度

难度级别:B; 运行时间限制:1000ms; 运行空间限制:51200KB; 代码长度限制:2000000B

试题描述

在科学计算中,有时候需要用到超高精度的运算。输入两个不超过2^31的正数A和B,两数都带有小数点,小数点后面的数的位数都不超过10000。请你计算并输出A和B的和。

输入

两行,每行包含一个符合题目要求的数,分别为A和B。

输出

一个数,即A+B的结果。

输入示例

1.123
2.877

输出示例

4.0

其他说明

特别说明:输入和输出的数都要符合数学上的基本规则,小数点后面尾部多余的0不输出,特殊的,当小数点后全是0,则结果仅仅输出小数点后一个0即可。例如2.800应该写成2.8,3应该写成3.0。

虽然小数点后面的数不超过10000位,但小数点前的整数没有特别要求,所以只要把小数点后面的数设成字符串,小数点前的整数直接用int就可以了。

下面是刚学编程时写的代码,可能写得不太好,有时间重新写一个:

#include<iostream>
#include<cstdio>
using namespace std;
int a,b,s;
char ch,A[10000],B[10000],S[10000];
int main()
{
    cin>>a>>ch>>A;
    cin>>b>>ch>>B;
    s=a+b;
    int lenA=strlen(A),lenB=strlen(B),lenS;
    if(lenA>lenB)
    {
        for(int i=lenB;i<lenA;i++) B[i]=‘0‘;
    }
    else if(lenB>lenA)
    {
        for(int i=lenA;i<lenB;i++) A[i]=‘0‘;
    }
    lenA=strlen(A);lenB=strlen(B);
    lenS=lenA;
    int i,j;
    bool temp=0;
    i=lenA;j=lenA;
    while(i>=1 || j>=1)
    {
        i--;j--;lenS--;
        S[lenS]+=A[i]+B[j]-48;
        if(S[lenS]<48) S[lenS]+=48;
        if(S[lenS]>57)
        {
            S[lenS-1]+=1;
            S[lenS]-=10;
            if(lenS==0) temp=1;
        }
    }
    lenS=strlen(S);
    if(temp==1) s++;
    cout<<s<<‘.‘;
    int x=lenS-1;
    while(S[x]==‘0‘) x--;
    x++;
    if(S[x+1]==‘0‘) x++;
    for(int i=0;i<x;i++) cout<<S[i];
}
时间: 2024-11-26 02:42:27

CNUOJ 2020 LJX的高精度的相关文章

国家地理信息产业发展规划 (2014-2020年)

地理信息是人类在经济社会活动中获取或形成的.主要描述事物或者现象的地理位置.时空分布及其动态特征和相关自然社会属性的信息,是重要的基础性信息资源,是国家信息资源的重要组成部分,广泛应用于经济社会发展各领域.以地理信息资源开发利用为核心的地理信息产业,作为高技术产业.现代服务业和战略性新兴产业,市场潜力巨大,发展前景广阔.为促进地理信息源开发利用.提升产业核心竞争力.推动产业做大做强,根据<国务院办公厅关于促进地理信息产业发展的意见>(国办发[2014]2号)要求,制定本规划. 一.发展形势 (

2020物联网展新起点新征程扬帆起航

2020第十三届亚洲国际物联网展览会-南京站The 13th Asia (Nanjing) international content networking exhibition 时间:2020年03月26-28日 地点:中国?南京国际会展中心 组织单位 特邀单位:××× ×××商务部主办单位:北京铭世博国际展览有限公司 支持单位:××× ×××中国智能家居产业联盟 中华物联网联盟国家信息化专家咨询委员会 中国物联网产业协会 承办单位:北京铭世博国际展览有限公司新起点 新启程 扬帆起航前言南京六

2020第十三届春季国际物联网展览会-南京站3月邀约各位大咖

邀 请 函 时间:2020年03月26-28日 地点:中国?南京国际会展中心4组织单位 特邀单位:××× ×××商务部主办单位:北京铭世博国际展览有限公司 支持单位:××× ×××中国智能家居产业联盟 中华物联网联盟国家信息化专家咨询委员会 中国物联网产业协会 承办单位:北京铭世博国际展览有限公司物联世界 智慧全球前言南京六朝古都是中国东部地区重要的中心城市.全国重要的科研基地和综合交通枢纽,是长江三角洲唯一的特大城市和长三角辐射带动中西部地区发展重要门户城市.首批国家历史文化名城和全国重点风景

专项复习1 高精度

高精度 1 高精度加法 LGP1601 啥也不说,直接上代码 #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> using namespace std; char ans1[505],ans2[505]; int num1[505],num2[505],numans[510]; int len1,len2,lent; int main(){ scanf(&qu

北京科博会-2020北京科博会

2020第二十三届北京国际科技产业博览会 北京科博会 科博会 2020北京科博会时间:2020年9月17日--20日 地点:北京·中国国际展览中心(三元桥)前言:科博会创办于1998年,迄今已经举办了22届,成为我国科技产业发展思想的策源地.创新技术与产品的首秀场和权威政策信息的首发地,在我国科技产业从引进来.自立自强到走出去的历史进程中,留下了浓墨重彩的一笔.据不完全统计,前22届科博会先后有100多个国家和地区1108个境外代表团参加,参展中外机构和企业36504家,观众累计达到560余万人

LJX的校园:入学典礼(C++)

LJX的校园:入学典礼 难度级别:C: 运行时间限制:45ms: 运行空间限制:256000KB: 代码长度限制:2000000B 试题描述 LJX上小学啦!他与YSM,YSF,WHT,LTJ等人都是校友.今天,是他人生中"溺亡"的一天.今天,他要向同学们证明他的数学很"乐呵".于是,刚学会简单的A+B问题的他,在课上,向冤家对头 斯沃琪 挑战 QAQ,斯沃琪 队有YZM,SJY,ZZQ等人.而LJX队有他的好朋(ji)友:YSM,YSF,WHT,LTJ,LZH等人

hdu 5718 Oracle 高精度

Oracle Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Problem Description There is once a king and queen, rulers of an unnamed city, who have three daughters of conspicuous beauty. The youngest and most beautifu

问题 A: 【高精度】被限制的加法

问题 A: [高精度]被限制的加法 时间限制: 1 Sec  内存限制: 16 MB提交: 56  解决: 30[提交][状态][讨论版] 题目描述 据关押修罗王和邪狼监狱的典狱长吹嘘,该监狱自一千年前建成以来,尚未有一个囚犯能够成功地越狱.当然这应该要归功于对囚犯们严格的信息管制,例如囚犯们虽然可以自由地使用计算机,但计算机的内存被密码锁设置为仅有100KB大小,显然,在这小得可怜的内存上想编程进行任何大规模的魔法运算,几乎是不可能完成的任务.但修罗王信奉的格言是“一切皆有可能!”,为了破解掉

大数相乘-高精度乘法

一.算法简要描述 给定两个数,相乘如何得到高精度的结果,给定的两个数,不确定是不是浮点数,即可能一个数带多位小数,另一个带小数,或者两个数都带多位小数,或都不带小数,针对这些情况,程序应该都要考虑,所谓的高精度其实就是看两个数的小数位有多少,那么其结果的小数位数应该为两数小数位数之和. 二.算法思路 针对上述描述,其实大部分思路首先想到的应该是用字符串来表示这两个数,带小数点和不带小数点最终都可转换成类似于两个大整数相乘的情况,在最后考虑把小数点放到结果的合适位置即可 三.算法代码 /* two