题意:小数大数加法

思路:大数模板

#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std; void plu(char *a,char *b){//注意存储方式:整数倒着存,小数正着存,看代码需注意
int i,j,k,lena,lenb,lena1,lena2,lenb1,lenb2,lenc1,lenc2;//len分别对应相应数组的长度
char a1[],a2[],b1[],b2[],c1[],c2[];//a1、a2为第一个数的整数部分、小数部分
lena=strlen(a);//b1、b2为第二个数;c1、c2为结果
lenb=strlen(b);
//取出第1个数的整数部分、小数部分
for(i=;i<lena;++i)
if(a[i]=='.')
break;
lena1=i;
lena2=lena-i-;
for(j=i-,k=;j>=;--j)
a1[k++]=a[j];
for(j=i+,k=;j<lena;++j)
a2[k++]=a[j]; //取出第2个数的整数部分、小数部分
for(i=;i<lenb;++i)
if(b[i]=='.')
break;
lenb1=i;
lenb2=lenb-i-;
for(j=i-,k=;j>=;--j)
b1[k++]=b[j];
for(j=i+,k=;j<lenb;++j)
b2[k++]=b[j]; //开始计算
int up=;//进位
//计算小数部分
if(lena2>lenb2){
lenc2=lena2;
for(i=lena2-;i>=lenb2;--i)
c2[i]=a2[i];
for(;i>=;--i){
c2[i]=a2[i]+b2[i]-''+up;
if(c2[i]>''){
up=;
c2[i]-=;
}
else up=;
}
}
else{
lenc2=lenb2;
for(i=lenb2-;i>=lena2;--i)
c2[i]=b2[i];
for(;i>=;--i){
c2[i]=a2[i]+b2[i]-''+up;
if(c2[i]>''){
up=;
c2[i]-=;
}
else up=;
}
}
while(c2[lenc2-]==''&&lenc2>=)--lenc2;//去除后面多余的0
//计算整数部分
if(lena1>lenb1){
lenc1=lena1;
for(i=;i<lenb1;++i){
c1[i]=a1[i]+b1[i]-''+up;
if(c1[i]>''){
up=;
c1[i]-=;
}
else up=;
}
for(;i<lena1;++i){
c1[i]=a1[i]+up;
if(c1[i]>''){
up=;
c1[i]-=;
}
else up=;
}
}
else{
lenc1=lenb1;
for(i=;i<lena1;++i){
c1[i]=a1[i]+b1[i]-''+up;
if(c1[i]>''){
up=;
c1[i]-=;
}
else up=;
}
for(;i<lenb1;++i){
c1[i]=b1[i]+up;
if(c1[i]>''){
up=;
c1[i]-=;
}
else up=;
}
} if(up==)printf("");//最后有进位 for(i=lenc1-;i>=;--i)
printf("%c",c1[i]); if(lenc2>){
printf(".");
for(i=;i<lenc2;++i)
printf("%c",c2[i]);
}
printf("\n");
} int main(){
char a[],b[];
while(~scanf("%s%s",a,b))
plu(a,b);
return ;
}

hdu 1753 大明A+B(大数)的更多相关文章

  1. hdu 1753 大明A+B

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1753 容易出错的事例: 0.1 0.2 1.88 22.22 1 0.01 大概出错的几个点,做久了思维根 ...

  2. hdu 1753 大明A+B(高精度小数加法)

    //深刻认识到自己的粗心,为此浪费了一天.. Problem Description 话说,经过了漫长的一个多月,小明已经成长了许多,所以他改了一个名字叫"大明". 这时他已经不是 ...

  3. HDU 1753 大明A+B (大正小数加法、字符串处理)

    大明A+B Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  4. HDU 1753 大明A+B(字符串模拟,简单题)

    简单题,但要考虑一些细节: 前导0不要,后导0不要,小数长度不一样时,有进位时,逆置处理输出 然后处理起来就比较麻烦了. 题目链接 我的代码纯模拟,把小数点前后分开来处理,写的很繁杂,纯当纪念——可怜 ...

  5. HDU高精度总结(java大数类)

      HDU1002   A + B Problem II [题意]大数相加 [链接]http://acm.hdu.edu.cn/showproblem.php?pid=1002 Sample Inpu ...

  6. [HDOJ] 1753.大明A+B (大数加法)

    Problem Description 话说,经过了漫长的一个多月,小明已经成长了许多,所以他改了一个名字叫"大明". 这时他已经不是那个只会做100以内加法的那个"小明 ...

  7. HDU 1041 Computer Transformation (简单大数)

    Computer Transformation http://acm.hdu.edu.cn/showproblem.php?pid=1041 Problem Description A sequenc ...

  8. hdu 4873 ZCC Loves Intersection(大数+概率)

    pid=4873" target="_blank" style="">题目链接:hdu 4873 ZCC Loves Intersection ...

  9. 【hdoj_1753】大明A+B(大数)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1753 本题要求是,进行多位的小数加法,由于位数很多,所以不能用double类型存储,可以用字符串存储,然后 ...

随机推荐

  1. Maven创建Java Application工程(既jar包)

    Maven在创建工程时使用的是archetype(原型)插件,而如果要创建具体的工程,比如Application这些,那么可以使用maven-archetype-quickstart(相当于一个子类型 ...

  2. Typora +google + Markdown Here 公众号

    一劳永逸的公众号排版方法  http://mp.weixin.qq.com/s/zb-YaacNLggG2-njF5HJ0A 

  3. SetProcessWorkingSetSize 和内存释放

    http://hi.baidu.com/taobaoshoping/item/07410c4b6d6d9d0d6dc2f084 在应用程序中,往往为了释放内存等,使用一些函数,其实,对于内存操作函数要 ...

  4. DICOM医学图像处理:Orthanc Plugin SDK实现WADO服务

    背景: Orthanc是博主发现的一个很完美的DICOM和HTTP服务端开源软件,前几篇分别介绍了Orthanc的基本使用.Orthanc从0.8.0版本之后给出了Plugin SDK,通过该SDK可 ...

  5. 【Todo】Java学习路线(方向指导)

    在网上搜了下Java学习路线(关键词:学习,因为众所周知,实践出牛人,在平时工作不怎么深入的情况下,才强调学习的方向的重要性 ^_^) 发现下面知乎这个回答写的真好.mark如下: https://w ...

  6. C 标准库 - <stddef.h>

    C 标准库 - <stddef.h> 简介 stddef .h 头文件定义了各种变量类型和宏.这些定义中的大部分也出现在其它头文件中. 库变量 下面是头文件 stddef.h 中定义的变量 ...

  7. 微信授权网页登陆,oauth

    1.在微信公众号请求用户网页授权之前.开发人员须要先到公众平台官网中的开发人员中心页配置授权回调域名.请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加http://等协议头. 2.授 ...

  8. vs2012 MinGW 编译ffmeg 引用外部库libx264,librtmp

    VS2012如何编译ffmpeg前面已经有文章讲过,本来主要讲述如何引用外部库libx264,librtmp, ffmpeg版本是3.0.2. 1. 下载x264源文件并编译 源码地址是http:// ...

  9. 移植alsa-lib遇到的问题

    移植alsa-lib遇到的问题 linux audio    alsa lib    VERSIONED_SYMBOLS 这两天移植alsa lib时遇到了一个问题,被困住了好久. 做个记录,以后再被 ...

  10. AMD单桥主板上电时序的详细解释

    3个待机条件: 1.桥需要得到待机电压:3.3V,1.5V/1.2V2.25M起振注:NV的RTC电路,一般不会导致时序故障,都可以出CPURST#3.PWRGD-SB(即INTEL芯片组的RSMRS ...