大数问题(大明A+B)
2016-07-26 10:41
197 查看
大明A+B
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 11779 Accepted Submission(s): 4265
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
代码:
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 11779 Accepted Submission(s): 4265
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
代码:
#include <stdio.h> #include <string.h> char s1[402],s2[402]; int a[805],b[805],s[805]; void create(char *s,int *a) { int i,j,k; int len = strlen(s);//字符串长度 if(strchr(s,'.')==NULL) { k=len; } else { k=strchr(s,'.')-s;//小数点位置 } for(i=k-1,j=400;i>=0;i--,j++) { a[j]=s[i]-'0'; }//整数部分存进数组后部分 for(i=k+1,j=399;i<len;i++,j--) { a[j]=s[i]-'0'; }//小数部分存进数字前部分 } int main() { while(~scanf("%s %s",s1,s2)) { int i,j; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(s,0,sizeof(s)); create(s1,a); create(s2,b);//对两个字符串进行处理放进数组中 int t=0,v=0; for(i=0;i<805;i++) { v=a[i]+b[i]+t; s[i]=v%10; t=v/10;//进位处理 }//两个数组相加 i=805; while(s[i]==0&&i>=400) i--; j=0; while(s[j]==0&&j<400) j++;//判断整数小数部分的长度位置 if(i==399&&j==400) printf("0\n"); else { for(i;i>=400;i--) printf("%d",s[i]);//输出整数部分 if(j!=400)//判断小数部分是否有数 { printf("."); for(i=399;i>=j;i--) printf("%d",s[i]); } printf("\n"); } } return 0; }
相关文章推荐
- 多连块拼图 (湖南省第七届大学生计算机程序设计竞赛真题) (平移+模拟匹配)
- Java Runtime.exec() Android ProcessBuilder 输出流阻塞
- Python学习笔记--2016.07.26
- Ubuntu安装mysql
- android 浏览器搜索记录
- 2分钟读懂大数据框架 Hadoop 和 Spark 的异同
- logcat被同学拖出来了,要怎么还原回去..
- 如何批量读取一个文件夹里的文件
- Linux安装必备知识
- Linux---RAID 管理
- 神级代码编辑软件(Sublime Text 3
- c语言描述的直接插入排序法
- 【Python】pip国内安装源和yum恢复
- logistic回归报错问题:Warning messages: 1: glm.fit:算法没有聚合 2: glm.fit:拟合機率算出来是数值零或一
- Android蓝牙通信聊天实现发送和接受功能
- iOS关于导航栏的那些事。
- 简单使用Git和Github来管理自己的代码和读书笔记
- mysqlbinlog基于postion的数据恢复
- Android Studio修改包名
- Error:Execution failed for task ':app:transformClassesWithDexForDebug'. > com.android.build.api.tran