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;

}

最新文章

  1. 镜像切换Logreader Agent报错:分发数据库中可能存在不一致的状态(续)
  2. 使用WebRTC搭建前端视频聊天室——信令篇
  3. 如何修改WAMP中mysql默认空密码 以及修改时报错的处理方法
  4. linux ulimit调优
  5. 20160805_CentOS6_键盘快捷键
  6. [转]如何下载tizen源码(图文教程)?
  7. 开源word操作组件DocX的记录
  8. mysql insert和前台显示乱码
  9. Nginx之旅系列 - Nginx的configuration
  10. 转 ogg组件介绍
  11. 分布式测试工具Beetle.DT的部署并进行HTTP,SQL,TCP压测
  12. JavaScript数据类型检测 数组(Array)检测方式
  13. Windows命令行设置dns
  14. What is the NETStandard.Library metapackage?
  15. easyui textbox 获取焦点
  16. Adobe reader multiple languages pack
  17. jconsole监控远程 spring boot程序
  18. python连接redis,redis集群
  19. react相关知识点链接整理
  20. You must reset your password using ALTER USER

热门文章

  1. astgo 老版本免激活完整安装包带安装命令脚本
  2. NET运用String的十八层境界
  3. C#窗体间传值的简便方法/工具
  4. Ruby&#160;Range类
  5. Java中多个线程交替循环执行
  6. css选择器---继承,优先级,层叠
  7. mysql中类型转换
  8. Task.Run 和 Task.Factory.StartNew
  9. JSP中如何利用JS实现登录页面的跳转(JSP中如何利用JS实现跳转页面)
  10. C# GridView使用方法