A+B Problem IV

时间限制:1000 ms  |           内存限制:65535 KB
难度:3
 
描述
acmj最近发现在使用计算器计算高精度的大数加法时很不方便,于是他想着能不能写个程序把这个问题给解决了。
 
输入
包含多组测试数据 每组数据包含两个正数A,B(可能为小数且位数不大于400)
输出
每组输出数据占一行,输出A+B的结果,结果需要是最简的形式。
样例输入
1.9 0.1
0.1 0.9
1.23 2.1
3 4.0
样例输出
2
1
3.33
7
来源
hdu

#include <stdio.h> #include <string.h>

#define MAX 440

int an1[MAX],an2[MAX],an3[MAX],an4[MAX];

char str1[MAX],str2[MAX],s[2*MAX];

int main()

{

memset(s,0,sizeof(s));

while(gets(s))

{         int i,j,t=0;

int len1,len2,len;

memset(str1,0,sizeof(str1));

memset(str2,0,sizeof(str2));

memset(an1,0,sizeof(an1));

memset(an2,0,sizeof(an2));

memset(an3,0,sizeof(an3));

memset(an4,0,sizeof(an4));

len=strlen(s);

for(i=0,j=0;i<len;i++)

{

if(s[i]==' ')

break;

else

str1[j++]=s[i];

}

for(i+=1,j=0;i<len;i++)

{

str2[j++]=s[i];

}

len1=strlen(str1);

for(i=0;i<len1;i++)

{

if(str1[i]=='.')

{t=i;break;}

}

if(i==len1)

t=i;

for(i+=1,j=1;i<len1;i++)

{

an2[j++]=str1[i]-'0';

}

for(i=t-1,j=0;i>=0;i--)

{

an1[j++]=str1[i]-'0';

}

/*

for(i=0;i<10;i++)

{

printf("%d",an1[i]);

}

for(i=0;i<10;i++)

{

printf("%d",an2[i]);

}

*/

len2=strlen(str2);

t=0;

for(i=0;i<len2;i++)

{

if(str2[i]=='.')

{t=i;break;}

}

if(i==len2)

t=i;

for(i+=1,j=1;i<len2;i++)

{

an4[j++]=str2[i]-'0';

}

for(i=t-1,j=0;i>=0;i--)

{

an3[j++]=str2[i]-'0';

}

for(i=MAX-1;i>=0;i--)

{

an2[i]+=an4[i];

if(an2[i]>=10)

{

an2[i]-=10;

an2[i-1]++;

}

}

if(an2[0]>0)

an1[0]++;

for(i=0;i<MAX;i++)

{

an1[i]+=an3[i];

if(an1[i]>=10)

{

an1[i]-=10;

an1[i+1]++;

}

}

for(i=MAX-1;i>0&&an1[i]==0;i--);

for(;i>=0;i--)

printf("%d",an1[i]);

for(i=MAX-1;i>0&&an2[i]==0;i--);

if(i>0)

{t=i;

printf(".");

for(i=1;i<=t;i++)

printf("%d",an2[i]);

}

printf("\n");

}

return 0;

}

nyoj_513_A+B Problem IV_20130131532的更多相关文章

  1. 1199 Problem B: 大小关系

    求有限集传递闭包的 Floyd Warshall 算法(矩阵实现) 其实就三重循环.zzuoj 1199 题 链接 http://acm.zzu.edu.cn:8000/problem.php?id= ...

  2. No-args constructor for class X does not exist. Register an InstanceCreator with Gson for this type to fix this problem.

    Gson解析JSON字符串时出现了下面的错误: No-args constructor for class X does not exist. Register an InstanceCreator ...

  3. C - NP-Hard Problem(二分图判定-染色法)

    C - NP-Hard Problem Crawling in process... Crawling failed Time Limit:2000MS     Memory Limit:262144 ...

  4. Time Consume Problem

    I joined the NodeJS online Course three weeks ago, but now I'm late about 2 weeks. I pay the codesch ...

  5. Programming Contest Problem Types

        Programming Contest Problem Types Hal Burch conducted an analysis over spring break of 1999 and ...

  6. hdu1032 Train Problem II (卡特兰数)

    题意: 给你一个数n,表示有n辆火车,编号从1到n,入站,问你有多少种出站的可能.    (题于文末) 知识点: ps:百度百科的卡特兰数讲的不错,注意看其参考的博客. 卡特兰数(Catalan):前 ...

  7. BZOJ2301: [HAOI2011]Problem b[莫比乌斯反演 容斥原理]【学习笔记】

    2301: [HAOI2011]Problem b Time Limit: 50 Sec  Memory Limit: 256 MBSubmit: 4032  Solved: 1817[Submit] ...

  8. [LeetCode] Water and Jug Problem 水罐问题

    You are given two jugs with capacities x and y litres. There is an infinite amount of water supply a ...

  9. [LeetCode] The Skyline Problem 天际线问题

    A city's skyline is the outer contour of the silhouette formed by all the buildings in that city whe ...

随机推荐

  1. PCB genesis连孔加除毛刺孔(槽孔与槽孔)实现方法(三)

    一.为什么 连孔加除毛刺孔 原因是 PCB板材中含有玻璃纤维, 毛刺产生位置在于2个孔相交位置,由于此处钻刀受力不均导致纤维切削不断形成毛刺 ,为了解决这个问题:在钻完2个连孔后,在相交处再钻一个孔, ...

  2. vue+nodejs+express解决跨域问题

    nodejs+express解决跨域问题,发现网上的大部分都是误导人,花了不少时间,终于弄懂了, 我在vue+nodejs+express+mongodb的项目里面,发现本地用vue代理正常调用远程的 ...

  3. flask 初始

    一.flask安装 这里提供两种安装方式: 第一种: pip3 install flask 第二种: pip3 install -i https://pypi.douban.com/simple/ f ...

  4. 350 Intersection of Two Arrays II 两个数组的交集 II

    给定两个数组,写一个方法来计算它们的交集.例如:给定 nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2].注意:       输出结果中每个元素出现的次数, ...

  5. [转]android使用全局变量的两种方法

    本文转自:http://blog.csdn.net/feiyangxiaomi/article/details/9966215 在我们使用android编写程序的时候,少不了想利用全局变量,但是面向对 ...

  6. c#异步多线程

    1.asyncrel = delegate.BeginInvoke实现委托异步调用. 2.异步等待 asyncrel.IsCompleted用于判断是否执行完毕 or EndInvoke用于等待执行完 ...

  7. Android开发中常用的ListView列表的优化方式ViewHolder

    在Android开发中难免会遇到大量的数据加载到ListView中进行显示, 然后其中最重要的数据传递桥梁Adapter适配器是常用的,随着市场的需 求变化ListView'条目中的内容是越来越多这就 ...

  8. 一篇文章告诉你如何使用EF CodeFirst做增删改查

    一.修改数据 其实修改涉及的内容挺多的,是相对于其他操作来说比较繁琐.也是本文的重头戏. 虽然都是基础内容,但是也是值得细细品味的. 1.最简单直接的修改数据就是从数据库里检索出数据修改相应的字段即可 ...

  9. Core 项目下使用SQl语句

    public static DataTable ExeQuery(string connectionString, CommandType cmdType, string cmdText) { usi ...

  10. codeforces_738D

    D. Sea Battle time limit per test 1 second memory limit per test 256 megabytes input standard input ...