大明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. 使用Artful MySQL模块出错

    总是报错: root@gitlab:/opt# newlisp newLISP v.10.6.0 64-bit on Linux IPv4/6 UTF-8 libffi, options: newli ...

  2. 应用Flume+HBase采集和存储日志数据

    1. 在本方案中,我们要将数据存储到HBase中,所以使用flume中提供的hbase sink,同时,为了清洗转换日志数据,我们实现自己的AsyncHbaseEventSerializer. pac ...

  3. JDBC结合JSP使用(2)

    5. 删除数据 在删除数据的时候,需要指定删除条件,否则会把数据库表中的数据全部删除.在JSP页面中获得删除条件以后,调用JDBC的删除条件,把数据库表中的数据删除.删除操作的JSP页面代码如下: d ...

  4. 我所遭遇过的游戏中间件---nvDXTLib

    我所遭遇过的游戏中间件---nvDXTLib nvDXTLib是Nvidia提供的一套用于DXT纹理压缩SDK.接口十分简洁,就是提供了几个纹理压缩的函数,其中我使用最多的函数是: DXTLIB_AP ...

  5. Informatica 常用组件Source Qualifier之七 输入过滤器

    通过输入源过滤器,可以降低 PowerCenter  查询的行数.如果在源过滤器中包括字符串 "WHERE" 或较大对象,PowerCenter 将使会话失败. 源限定符转换包括默 ...

  6. 两个JS对象怎样才能相等

    在JS中,两个对象如何才能相等?下面的两个 Alert,只有一个输出true.  在JS中如何才能构造出两个JS对象相等? var prop1 = {asd:{def:'abc'}}; var pro ...

  7. UVA 12487 Midnight Cowboy(LCA+大YY)(好题)

    题目pdf:http://acm.bnu.edu.cn/v3/external/124/12487.pdf 大致题意: 一棵树,一个人从A节点出发,等可能的选不论什么一条边走,有两个节点B,C求这个人 ...

  8. SICP-练习2.17

    [问题] 请定义出过程last-pair.它返回仅仅包括给定(非空)表里最后一个元素的表: (last-pair (list 23 72 149 34)) (34) [分析] last-pair须要处 ...

  9. 从servlet中获取spring的WebApplicationContext

    需要做一个参数初始化类,当web应用被加载时从数据库里取出相关的参数设置 ,并把这些参数放置到application里,jsp页面可以从中取出. 1.在web.xml中配置: <servlet& ...

  10. 火狐浏览器Firefox如何使用插件,火狐有哪些好用的插件

    1 CoorPreviews 不打开网页链接预览该网页的内容. 预览如图所示: 点击关闭旁边的钉子可以让该窗口保持开着并且浏览速度加快.这对于快速浏览图片时非常有用. 2 FoxTab 3D方式预览网 ...