时间限制:1 秒

内存限制:32 兆

特殊判题:否

提交:2725

解决:736

题目描述:

求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
来源:
2008年北京大学软件所计算机研究生机试真题

思路:

容易犯细节错误,此题我WA了好几次。

代码:

#include <stdio.h>
#include <string.h>
char s1[110], s2[110], s[110];
int Find(char a[], int n)
{
int i;
for (i = 0; a[i]; i++)
{
if (a[i] == '.')
{
return i;
}
}
return -1;
}
int main()
{
int ca;
scanf("%d", &ca);
while (ca--)
{
scanf("%s%s", s1, s2);
int n1 = strlen(s1);
int n2 = strlen(s2);
int pos1 = 0, pos2 = 0;
pos1 = Find(s1, n1);
pos2 = Find(s2, n2);
int i = n1, j = n2;
int d = (n1 - pos1) - (n2 - pos2);
if (d > 0)
{
for (; j < n2 + d; j++)
{
s2[j] = '0';
}
s2[j] = '\0';
n2 = j;
}
else if (d < 0)
{
for (; i < n1 - d; i++)
{
s1[i] = '0';
}
s1[i] = '\0';
n1 = i;
}
i--;
j--;
int t = 0, len = 0;
while (i >= 0 && j >= 0)
{
if(s1[i] == '.')
{
s[len] = '.';
}
else
{
t += s1[i] + s2[j] - 2 * '0';
s[len] = t % 10 + '0';
t /= 10;
}
len++;
i--;
j--;
}
while (i >= 0)
{
t += s1[i--] - '0';
s[len++] = t % 10 + '0';
t /= 10;
}
while (j >= 0)
{
t += s2[j--] - '0';
s[len++] = t % 10 + '0';
t /= 10;
}
if (t == 1)
{
s[len++] = '1';
}
j = 0;
while (s[j] == '0')
{
j++;
}
for (i = len - 1; i >= j; i--)
{
printf("%c", s[i]);
}
printf("\n");
}
return 0;
}
/**************************************************************
Problem: 1137
User: liangrx06
Language: C
Result: Accepted
Time:150 ms
Memory:912 kb
****************************************************************/

九度OJ 1137:浮点数加法 (大数运算)的更多相关文章

  1. [九度OJ]1137.浮点数加法

    原题链接:http://ac.jobdu.com/problem.php?pid=1137 题目描述: 求2个浮点数相加的和题目中输入输出中出现浮点数都有如下的形式:P1P2...Pi.Q1Q2... ...

  2. 【九度OJ】题目1137:浮点数加法 解题报告

    [九度OJ]题目1137:浮点数加法 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1137 题目描述: 求2个浮点数相加的 ...

  3. 【九度OJ】题目1083:特殊乘法 解题报告

    [九度OJ]题目1083:特殊乘法 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1083 题目描述: 写个算法,对2个小于 ...

  4. 【九度OJ】题目1435:迷瘴 解题报告

    [九度OJ]题目1435:迷瘴 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1435 题目描述: 通过悬崖的yifenfei,又面临 ...

  5. 【九度OJ】题目1069:查找学生信息 解题报告

    [九度OJ]题目1069:查找学生信息 解题报告 标签(空格分隔): 九度OJ [LeetCode] http://ac.jobdu.com/problem.php?pid=1069 题目描述: 输入 ...

  6. 【九度OJ】题目1047:素数判定 解题报告

    [九度OJ]题目1047:素数判定 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1047 题目描述: 给定一个数n,要求判 ...

  7. 【九度OJ】题目1138:进制转换 解题报告

    [九度OJ]题目1138:进制转换 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1138 题目描述: 将一个长度最多为30 ...

  8. 【九度OJ】题目1474:矩阵幂 解题报告

    [九度OJ]题目1474:矩阵幂 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1474 题目描述: 给定一个n*n的矩阵,求该矩阵的 ...

  9. 九度oj 题目1087:约数的个数

    题目链接:http://ac.jobdu.com/problem.php?pid=1087 题目描述: 输入n个整数,依次输出每个数的约数的个数 输入: 输入的第一行为N,即数组的个数(N<=1 ...

随机推荐

  1. js函数的四种调用方式以及对应的this指向

    一.函数调用,此时this是全局的也就是window 1 var c=function(){ 2 alert(this==window) 3 } 4 c()//true 二.方法调用 var myOb ...

  2. 彻底搞定C指针-函数名与函数指针【转】

    转自:http://blog.csdn.net/a1232345/article/details/43524371 函数名与函数指针 一 通常的函数调用    一个通常的函数调用的例子://自行包含头 ...

  3. unix网络编程第一章demo

    之前一直以为time_wait状态就是主动关闭的那一方产生.然后这个端口一直不可以用.实际我发现服务端监听一个端口.客户端发来连接后.传输数据后.服务端关闭客户端套接字后.用netstat -nat ...

  4. 从网上搜集的X86 显示 int 10H

    INT 10H 是由 BIOS 对屏幕及显示器所提供的服务程序,而后倚天公司针对倚天中文提供了许多服务程序,这些服务程序也加挂在 INT 10H 内.使用 INT 10H 中断服务程序时,先指定 AH ...

  5. WCF的学习之旅

    一.WCF的简单介绍  Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是MS为SOA (S ...

  6. React native 横滑效果

    import { Component } from 'react'; import { StyleSheet, View, Text, TouchableOpacity, ScrollView, Di ...

  7. bzoj 1835/luogu P2605 : [ZJOI2010]base 基站选址

    题目描述 有N个村庄坐落在一条直线上,第i(i>1)个村庄距离第1个村庄的距离为Di.需要在这些村庄中建立不超过K个通讯基站,在第i个村庄建立基站的费用为Ci.如果在距离第i个村庄不超过Si的范 ...

  8. 2017 [六省联考] T6 寿司餐厅

    4873: [Shoi2017]寿司餐厅 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 450  Solved: 316[Submit][Status ...

  9. bootstrap-datetimepicker时间控件的使用

    官方文档:http://www.bootcss.com/p/bootstrap-datetimepicker/demo.htm 常规使用: <div class="input-grou ...

  10. Go语言_RPC_Go语言的RPC

    一 标准库的RPC RPC(Remote Procedure Call,远程过程调用)是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络细节的应用程序通信协议.简单的说就是要像调用本地函数 ...