题意:小数大数加法

思路:大数模板

#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. 洛谷1967货车运输 即 NOIP2013 DAY1 T3

    题目描述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最多 ...

  2. git学习五:eclipse使用git下载项目

    原文:http://blog.csdn.net/u014079773/article/details/51597213 准备工作: 目的:从远程仓库github上down所需的项目 eclipse使用 ...

  3. 算法题1+2+...+N

    题目:求1+2+-+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字以及条件判断语句(A?B:C). int solve(int n) { int i = 1 ...

  4. ItelliJ IDEA开发工具使用—创建一个web项目

    转   http://blog.csdn.net/wangyang1354/article/details/50452806 最近想用IDEA编辑器开发,但是平时都用MyEclipse和eclipse ...

  5. 手把手教你安装Hbase,一次成功!

    安装环境: OS: Centos 6.5 JDK: jdk1.6.0_18 Hadoop: hadoop-0.20.2 Hbase: hbase-0.90.5 安装准备: 1.       Jdk环境 ...

  6. PS 抠图如何使用通道法处理头发

      通道抠图法抠出美女飘逸头发-PS抠图实例教程 抠图更换背景后效果图 通道抠图法抠出美女飘逸头发-PS抠图实例教程 教程步骤: 1  打开原图,进入通道面板. 通道抠图法抠出美女飘逸头发-PS抠图实 ...

  7. js随机数 从头开始系列

    js要常常写啊要不然就要从0开始 1 var num = Math.random(); //创建一个0-1随机数字 num*=10 //变为0-10随机数字 //有好几种取整方式 var i = Ma ...

  8. C语言-回溯例2

    组合问题 组合:从n个不同元素中取r个不重复的元素组成一个子集,而不考虑其元素的顺序,称为从n个中取r个的无重组合,例如OR = {1,2,3,4}, n = 4, r = 3则无重组合为: {1,2 ...

  9. VueJS表达式支持:逻辑控制或运算

    HTML <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <titl ...

  10. EC2的维护更新

     2014年9月28日 近期几天.我们收到了一些客户关于我们即将进行维护更新的问题.下面是AWS全球Blog网站对这个问题的说明,供客户參照. 我们已经開始通知那些受影响的客户,关于我们即将实施的 ...