九度oj 题目1137:浮点数加法
- 题目描述:
-
求2个浮点数相加的和
题目中输入输出中出现浮点数都有如下的形式:
P1P2...Pi.Q1Q2...Qj
对于整数部分,P1P2...Pi是一个非负整数
对于小数部分,Qj不等于0
- 输入:
-
对于每组案例,第1行是测试数据的组数n,每组测试数据占2行,分别是两个加数。
每组测试数据之间有一个空行,每行数据不超过100个字符
- 输出:
-
每组案例是n行,每组测试数据有一行输出是相应的和。
输出保证一定是一个小数部分不为0的浮点数
- 样例输入:
-
2
0.111111111111111111111111111111
0.111111111111111111111111111111 10000000.655555555555555555555555555555
1.444444444444444444444444444445
- 样例输出:
-
0.222222222222222222222222222222
10000002.1 这道题自我感觉做的麻烦了,主要是对阶#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm> #define MAX 102 char A[MAX];
char B[MAX];
int AZ[MAX];
int BZ[MAX];
int AX[MAX];
int BX[MAX]; int calSump(int a[], int b[], int n) {
int ci = ;
for(int i = ; i < n; i++) {
int temp = a[i] + b[i] + ci;
int ben = temp % ;
ci = temp/;
a[i] = ben;
}
return ci;
} void calSumz(int a[], int b[], int n, int ci) {
for(int i = ; i < n; i++) {
int temp = a[i] + b[i] + ci;
int ben = temp % ;
ci = temp/;
a[i] = ben;
}
a[n] = ci;
} int max(int a, int b) {
return a>b?a:b;
} int main(int argc, char const *argv[])
{
int n;
//freopen("input.txt","r",stdin);
scanf("%d",&n);
while(n--) {
scanf("%s",A);
scanf("%s",B);
int azw = , axw = ;
int bzw = , bxw = ;
for(int i = ; i < strlen(A); i++) {
if(A[i] != '.') {
azw++;
}
else {
break;
}
}
//11.12 5 - 2 - 1 = 2
axw = strlen(A) - azw - ; for(int i = ; i < strlen(B); i++) {
if(B[i] != '.') {
bzw++;
}
else {
break;
}
}
//11.12 5 - 2 - 1 = 2
bxw = strlen(B) - bzw - ; memset(AZ, , sizeof(AZ));
memset(AX, , sizeof(AX));
memset(BZ, , sizeof(BZ));
memset(BZ, , sizeof(BZ)); for(int i = azw - ,j = ; i >= , j < azw; i--,j++) {
AZ[j] = A[i] - '';
}
for(int i = bzw - ,j = ; i >= , j < bzw; i--,j++) {
BZ[j] = B[i] - '';
}
//0.123
//0.123456789
int maxz = max(azw, bzw);
int maxp = max(axw, bxw);
if(axw < bxw) {
int j = ;
for(j = ; j < (bxw - axw); j++) {
AX[j] = ;
}
for(int i = strlen(A) - ;j < bxw,i > azw;j++, i--) {
AX[j] = A[i] - '';
}
for(int i = strlen(B) - , k = ; i >= , k < strlen(B); i--,k++) {
BX[k] = B[i] - '';
}
}
else {
int j = ;
for(j = ; j < (axw - bxw); j++) {
BX[j] = ;
}
for(int i = strlen(B) - ;j < axw,i > bzw;j++, i-- ) {
BX[j] = B[i] - '';
}
for(int i = strlen(A) - , k = ; i >= , k < strlen(A); i--,k++) {
AX[k] = A[i] - '';
}
} int pci = calSump(AX, BX, maxp); calSumz(AZ,BZ, maxz, pci); bool isAll0 = true;
for(int i = maxz + ; i >= ; i--) {
if(isAll0 && AZ[i] != ) {
isAll0 = false;
}
if(!isAll0) {
printf("%d", AZ[i]);
}
}
if(isAll0) {
printf("%d",);
}
printf("."); int last = maxp-;
for(int i = ; i < maxp; i++) {
if(AX[i] != ) {
last = i;
break;
}
}
for(int i = maxp-; i >= last; i--) {
printf("%d", AX[i]);
}
printf("\n");
}
return ;
}
九度oj 题目1137:浮点数加法的更多相关文章
- 九度OJ题目1137:浮点数加法 (JAVA)使用BigDecimal四个案例都通过了,但是超时了。
题目描述: 求2个浮点数相加的和 题目中输入输出中出现浮点数都有如下的形式: P1P2...Pi.Q1Q2...Qj 对于整数部分,P1P2...Pi是一个非负整数 对于小数部分,Qj不等于0 输入: ...
- 九度OJ 题目1384:二维数组中的查找
/********************************* * 日期:2013-10-11 * 作者:SJF0115 * 题号: 九度OJ 题目1384:二维数组中的查找 * 来源:http ...
- hdu 1284 关于钱币兑换的一系列问题 九度oj 题目1408:吃豆机器人
钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- 九度oj题目&吉大考研11年机试题全解
九度oj题目(吉大考研11年机试题全解) 吉大考研机试2011年题目: 题目一(jobdu1105:字符串的反码). http://ac.jobdu.com/problem.php?pid=11 ...
- 九度oj 题目1007:奥运排序问题
九度oj 题目1007:奥运排序问题 恢复 题目描述: 按要求,给国家进行排名. 输入: 有多组数据. 第一行给出国家数N,要求排名的国家数M,国家号 ...
- 九度oj 题目1087:约数的个数
题目链接:http://ac.jobdu.com/problem.php?pid=1087 题目描述: 输入n个整数,依次输出每个数的约数的个数 输入: 输入的第一行为N,即数组的个数(N<=1 ...
- 九度OJ题目1105:字符串的反码
tips:scanf,cin输入字符串遇到空格就停止,所以想输入一行字符并保留最后的"\0"还是用gets()函数比较好,九度OJ真操蛋,true?没有这个关键字,还是用1吧,还是 ...
- 九度oj题目1009:二叉搜索树
题目描述: 判断两序列是否为同一二叉搜索树序列 输入: 开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束. 接 ...
- 九度oj题目1002:Grading
//不是说C语言就是C++的子集么,为毛printf在九度OJ上不能通过编译,abs还不支持参数为整型的abs()重载 //C++比较正确的做法是#include<cmath.h>,cou ...
随机推荐
- Jenkins怎么启动和停止服务
笔者没有把Jenkins配置到tomcat中,每次都是用命令行来启动Jenkins.但是遇到一个问题:Jenkins一直是开着的,想关闭也关闭不了.百度了一些资料,均不靠谱(必须吐槽一下百度).于是进 ...
- 非常实用的Linux 系统监控工具
随着互联网行业的不断发展,各种监控工具多得不可胜数.这里列出网上最全的监控工具.让你可以拥有超过80种方式来管理你的机器.在本文中,我们主要包括以下方面: 命令行工具 网络相关内容 系统相关的监控工具 ...
- Nginx常用命令介绍
#安装nginx准备工作yum install gcyum -y install pcre-develyum install -y zlib-devel #编译安装./configuremake &a ...
- codeforces 121 E. Lucky Array
time limit per test 4 seconds memory limit per test 256 megabytes input standard input output standa ...
- PostgressSQL-Installation
安装 sudo apt install -y postgresql 自动生成一个名为 postgres 的 Linux 系统用户 $ finger postgres Login: postgres N ...
- MVC视图特性
在主界面的视图中可以使用viewdata,引用主界面的分布视图界面也可以调用主界面的分部视图,但是分部视图不可以定义viewdata并使用 例子如下: // // GET: /Home/ public ...
- HDU 6069 Counting Divisors(区间素数筛法)
题意:...就题面一句话 思路:比赛一看公式,就想到要用到约数个数定理 约数个数定理就是: 对于一个大于1正整数n可以分解质因数: 则n的正约数的个数就是 对于n^k其实就是每个因子的个数乘了一个K ...
- 解决response在controller返回乱码的解决方式
乱码的代码 @RequestMapping(value = "/readbook", method = RequestMethod.GET) 加入 produces = " ...
- k8s master init and add node
目录 一. add google apt-key 二. k8s master init 三. k8s node add to master cluster(use this command when ...
- javascript中typeof、undefined 和 null
typeof 是运算符,注意不是函数,是运算符,其作用,是考察变量究竟是什么类型.或曰,是变量是否定义或是否初始化的照妖镜.返回值是字符串. undefined 表示一个对象没有被定义或者没有被初始化 ...