题意:小数大数加法

思路:大数模板

#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. android 打开软键盘

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&q ...

  2. hadoop常见错误

    hadoop常见错误集锦: 1.DataXceiver error processing WRITE_BLOCK operation ERROR org.apache.hadoop.hdfs.serv ...

  3. String空格删除和java删除字符串最后一个字符的几种方法

    1. String.trim()trim()是去掉首尾空格2.str.replace(" ", ""); 去掉所有空格,包括首尾.中间复制代码 代码如下:Str ...

  4. 百科知识 isz文件如何打开

    使用UltraISO可以打开

  5. 怎样让Eclipse的智能提示像VS一样霸气

    说起来用Eclipse也有一段时间了.相信每个用过的人都知道他的智能提示功能真的是糟糕透了,与VisualStudio2008简直不是一个档次的!我就纳闷了,他为什么不弄好一点呢.今天我实在是忍不住了 ...

  6. vue2 less less-loader 的用法

    LESS基础语法 我们一起来学习一下LESS的基础语法,LESS的基础语法基本上分为以下几个方面:变量.混合(Mixins).嵌套规则.运算.函数.作用域等.这些基础语法需要我们先牢牢的掌握住,然后才 ...

  7. Shell 研究

    清空文件 https://blog.csdn.net/u011192270/article/details/47804951 写入多行内容到文件 vi rewrite.sh, <<EOF ...

  8. Python实战之自己主动化评论

    Python实战之自己主动化评论 玩csdn博客一个多月了,渐渐发现了一些有意思的事,常常会有人用相同的评论到处刷.不知道是为了加没什么用的积分,还是纯粹为了表达楼主好人.那么问题来了,这种无聊的事情 ...

  9. mysql-介绍、MySQL部署、数据类型、存储引擎

    数据库介绍  什么是数据? 数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的原始素材.数据是信息的表现形式和载体,可以是符号.文字.数字.语音.图像.视频等. ...

  10. eclipse中run as无run as server选项的解决方案

    在项目->右击->Properties->Project Facets->Modify Project,选择Java和DynamicWeb Module