大明A+B

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 7545    Accepted Submission(s): 2662

Problem Description
话说,经过了漫长的一个多月,小明已经成长了许多,所以他改了一个名字叫“大明”。
这时他已经不是那个只会做100以内加法的那个“小明”了,现在他甚至会任意长度的正小数的加法。

现在,给你两个正的小数A和B,你的任务是代表大明计算出A+B的值。

 
Input
本题目包含多组测试数据,请处理到文件结束。
每一组测试数据在一行里面包含两个长度不大于400的正小数A和B。
 
Output
请在一行里面输出输出A+B的值,请输出最简形式。详细要求请见Sample Output。
 
Sample Input
1.1 2.9
1.1111111111 2.3444323343
1 1.1
 
Sample Output
4
3.4555434454
2.1
 
Author
linle
 
Source
 
 
代码:
 #include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define maxn 405
char sa[maxn],sb[maxn];
struct node
{
int NN[],point[];
int pos,nlen;
void init()
{
memset(NN,,sizeof(NN));
memset(point,,sizeof(point));
}
};
node aa,bb;
void cal(char *str,node *p) //将大小数分解
{
int i,k,j=,temp;
p->pos=strlen(str)-;
for(i=;str[i]!='.'&&i<=p->pos;i++)
p->NN[j++]=str[i]-'';
for(k=i-,j=;k>j;k--,j++){
temp=p->NN[k];
p->NN[k]=p->NN[j];
p->NN[j]=temp;
}
if(i<=p->pos) p->nlen=i++; //NN长度点位置
else p->nlen=p->pos;
p->pos-=p->nlen ; //小数位数
for(j=;i<strlen(str);i++)
p->point[j++]=str[i]-''; //不进行逆序
}
void work(node sa ,node sb){
int i,j,cc,maxc,minc,p_len=;
if(sa.pos>sb.pos){
minc=sb.pos;
maxc=sa.pos;
}
else{
minc=sa.pos;
maxc=sb.pos;
}
cc=;
p_len=maxc-;
for(i=maxc-;i>=;i--){
sa.point[i]+=sb.point[i]+cc;
cc= sa.point[i]/;
sa.point[i]%=;
}
if(sa.nlen>sb.nlen){
maxc=sa.nlen;
minc=sb.nlen;
}
else{
maxc=sb.nlen;
minc=sa.nlen;
}
//判断小数点是否进
maxc++;
for(i=,j=;j<=maxc;j++){
sa.NN[j]+=sb.NN[i++]+cc ;
cc=sa.NN[j]/ ;
sa.NN[j]%= ;
}
while(maxc>&&sa.NN[maxc]==) maxc--;
while(maxc>=)
printf("%d",sa.NN[maxc--]);
i=;
while(sa.point[p_len]==) p_len--;
if(i<=p_len) printf(".");
for(j=i;j<=p_len;j++)
printf("%d",sa.point[j]);
printf("\n");
}
int main()
{
while(scanf("%s%s",sa,sb)!=EOF)
{
aa.init();
bb.init();
cal(sa,&aa);
cal(sb,&bb);
work(aa,bb);
}
return ;
}
 

HDUOJ-------1753大明A+B(大数之小数加法)的更多相关文章

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

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

  2. Codeforces Round #260 (Div. 2) A B C 水 找规律(大数对小数取模) dp

    A. Laptops time limit per test 1 second memory limit per test 256 megabytes input standard input out ...

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

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

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

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

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

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

  6. hdu 1753 大明A+B(大数)

    题意:小数大数加法 思路:大数模板 #include<iostream> #include<stdio.h> #include<string.h> using na ...

  7. HDOJ 1753 大明A+B

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

  8. hdoj 1753 大明A+B 高精度/java

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

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

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

随机推荐

  1. ConcurrentHashMap之实现细节

    ConcurrentHashMap是Java 5中支持高并发.高吞吐量的线程安全HashMap实现.在这之前我对ConcurrentHashMap只有一些肤浅的理解,仅知道它采用了多个锁,大概也足够了 ...

  2. Objective—C中的排序及Compare陷阱

    campare陷阱 NSString有多个compare相关方法: - (NSComparisonResult)compare:(NSString *)string; - (NSComparisonR ...

  3. C语言编程规范

    C语言编程规范 6 函数与过程 6.1 函数的功能与规模设计 函数应当短而精美,而且只做一件事.不要设计多用途面面俱到的函数,多功能集于一身的函数,很可能使函数的理解.测试.维护等变得困难. 6.2 ...

  4. Java 从基础到进阶学习之路---类编写以及文档凝视.

    Java之前在学习过,基础知识还没有忘光,并且这些高级语言实在是太像,所以那些数据类型,或者循环控制流,以及标准设备等等就直接略过不说了. 只是一些重大概念会穿插在文章的介绍中. So,这些文章适合于 ...

  5. 第十四章 springboot + profile(不同环境读取不同配置)

    具体做法: 不同环境的配置设置一个配置文件,例如:dev环境下的配置配置在application-dev.properties中:prod环境下的配置配置在application-prod.prope ...

  6. vue-router登录校验后跳转到之前指定页面如何实现

    两个需求:1.用户点击购买需要下单,并跳转到订单页面,但是如果用户没有登录的话,中间有登录验证,会拦截:2.点击购买的时候,登录校验成功了,跳转到订单页面时,订单已创建,去付款即可.3.处理拦截至登录 ...

  7. Android -- 保存文件

    背景                                                                                             我们以常见 ...

  8. Gson解析复杂Json数据

    背景                                                                   json是一种数据格式,便于数据传输.存储.交换. gson是 ...

  9. 笔记本建立wifi热点的实用详细步骤

    准备工作: (1) 首先要打开开始菜单--->搜索“services.msc” 并打开(或者用win+R快捷键打开“运行”输入“service.msc”,点击确定)--->找到“WLAN ...

  10. LeetCode【7】.Reverse Integer--java实现

    Reverse Integer 题目要求:给定一个int 类型值,求值的反转,例如以下: Example1: x = 123, return 321      Example2: x = -123, ...