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 <algorithm>
#include <cstdio>
#include <cstring>
#include <fstream>
#include <iostream>
#include <string>
#include <vector> using namespace std; int FindDec(string &str) {
int i;
int len = str.size();
for (i = 1; i < len; i++) {
if (str[i] == '.') break;
}
return i;
} int main() {
string a, b; while (cin >> a >> b) {
//整数位位数
int len_int_a = FindDec(a), len_int_b = FindDec(b);
//小数位位数
int len_dec_a = a.size() - len_int_a - 1;
int len_dec_b = b.size() - len_int_b - 1;
//整书补零
if (len_int_a > len_int_b)
for (int i = 0; i < len_int_a - len_int_b; ++i) b = '0' + b;
else
for (int i = 0; i < len_int_b - len_int_a; ++i) a = '0' + a;
//小数补0
if (len_dec_a > len_dec_b)
for (int i = 0; i < len_dec_a - len_dec_b; ++i) b = b + '0';
else
for (int i = 0; i < len_dec_b - len_dec_a; ++i) a = a + '0';
//记录小数点位置,去除小数点
int decPos = max(len_int_a, len_int_b);
a = a.erase(decPos, 1);
b = b.erase(decPos, 1);
//计算
int car = 0;
int len = a.size();
for (int i = len - 1; i >= 0; --i) {
int x = a[i] - '0', y = b[i] - '0';
car += (x + y);
a[i] = (car % 10 + '0');
car /= 10;
}
if (car) {
a = '1' + a;
len = a.size();
decPos += 1;
}
//输出
int i, j;
for (i = 0; i < len; i++)
if (a[i] != '0') break;
for (j = i; j < decPos; j++) cout << a[j];
for (j = len - 1; j >= decPos; j--)
if (a[j] != '0') break;
if (j >= decPos) {
cout << ".";
for (i = decPos; i <= j; i++) cout << a[i];
}
cout << endl;
}
system("pause");
return 0;
}

[HDOJ] 1753.大明A+B (大数加法)的更多相关文章

  1. HDOJ 1753 大明A+B

    JAVA大数.... 大明A+B Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  2. hdoj 1753 大明A+B 高精度/java

    大明A+B Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  3. HDU 1753 大明A+B (大正小数加法、字符串处理)

    大明A+B Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  4. hdu 1753 大明A+B(大数)

    题意:小数大数加法 思路:大数模板 #include<iostream> #include<stdio.h> #include<string.h> using na ...

  5. HDOJ 1753 明朝A+B

     http://acm.hdu.edu.cn/showproblem.php? pid=1753 大明A+B Time Limit: 3000/1000 MS (Java/Others)    M ...

  6. 51nod 1005 大数加法

    #include<iostream> #include<string> using namespace std; #define MAXN 10001 },b[MAXN]={} ...

  7. c#大数加法

    在C#中,我们经常需要表示整数.但是,c#的基本数据类型中,最大的long也只能表示-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807之间的数 ...

  8. 玲珑杯1007-A 八进制大数加法(实现逻辑陷阱与题目套路)

    题目连接:http://www.ifrog.cc/acm/problem/1056 DESCRIPTION Two octal number integers a, b are given, and ...

  9. Leetcode 67 Add Binary 大数加法+字符串处理

    题意:两个二进制数相加,大数加法的变形 大数加法流程: 1.倒置两个大数,这一步能使所有大数对齐 2.逐位相加,同时进位 3.倒置两个大数的和作为输出 class Solution { public: ...

随机推荐

  1. 新兴技术袭来,Web开发如何抉择?

    土豆网同步更新:http://www.tudou.com/plcover/VHNh6ZopQ4E/   使用HTML 创建Mac OS App 视频教程. 官方QQ群: (1)App实践出真知 434 ...

  2. 静态编译 Qt 5.6

    源码下载 Qt git地址:git://code.qt.io/qt/qt5.git 推荐用 SourceTree 客户端来克隆源码 准备工作 系统 Windows 7 或者 Windows 10 编译 ...

  3. vs中debug的一个小技巧 -- debug时忽略某段代码

    #line 这是C#中的预处理命令 Visual Studio 2008 Visual Studio 2005 Visual Studio 2012 #line hidden 指令对调试器隐藏若干连续 ...

  4. WIN8安装oracle11g时出现不满足最低配置解决办法

    Windows8上面安装Oracle11g客户端和服务端时都会出现这样的错误提示:[INS-13001]环境不满足最低要求 产生这种报错的主要原因在于:oracle 11g的配置文件中并没有提供匹配w ...

  5. Mac上刚安装的WebStorm或PHPStorm遇到SVN版本太旧的问题

    Mac上刚安装的WebStorm或PHPStorm遇到SVN版本太旧的问题: URL: svn: E155021: This client is too old to work with the wo ...

  6. top命令的使用

    原地址:https://mp.weixin.qq.com/s/DVX86UgZDiTspVe497KKWw

  7. Asp.Net Core 项目 EntityFramework Core 根据登录用户名过滤数据

    1.创建ASP.NET Core Web Applicatoin (MVC)项目,并且使用 Individual User Account 2.创建数据筛选接口 Models->IDataFil ...

  8. Spring Boot:整合JdbcTemplate

    综合概述 Spring对数据库的操作在jdbc上面做了更深层次的封装,而JdbcTemplate便是Spring提供的一个操作数据库的便捷工具.我们可以借助JdbcTemplate来执行所有数据库操作 ...

  9. spring 5.x 系列第11篇 —— 整合memcached (xml配置方式)

    文章目录 一.说明 1.1 XMemcached客户端说明 1.2 项目结构说明 1.3 依赖说明 二.spring 整合 memcached 2.1 单机配置 2.2 集群配置 2.3 存储基本类型 ...

  10. PATB 1018. 锤子剪刀布

    时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图 ...