HDU1753 (大正小数相加)
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1753
大明A+B
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 14422 Accepted Submission(s): 5290
这时他已经不是那个只会做100以内加法的那个“小明”了,现在他甚至会任意长度的正小数的加法。
现在,给你两个正的小数A和B,你的任务是代表大明计算出A+B的值。
每一组测试数据在一行里面包含两个长度不大于400的正小数A和B。
#include<bits/stdc++.h>
using namespace std;
string add(string str1,string str2)
{
int l1=str1.length(),l2=str2.length();
int x1=,x2=,y1=,y2=;
for(int i=l1-;i>=;i--)
{
if(str1[i]!='.')
{
y1++;
if(y1==l1)
{
str1=str1+'.'+'';
y1=;
}
}
else
break;
}
for(int i=l2-;i>=;i--)
{
if(str2[i]!='.')
{
y2++;
if(y2==l2)
{
str2=str2+'.'+'';
y2=;
}
}
else
break;
}
if(y1>y2)
{
int k=y1-y2;
for(int i=;i<=k;i++)
{
str2=str2+'';
}
}else if(y1<y2)
{
int k=y2-y1;
for(int i=;i<=k;i++)
{
str1=str1+'';
}
}
for(int i=;i<l1;i++)
{
if(str1[i]!='.')
x1++;
else
break;
}
for(int i=;i<l2;i++)
{
if(str2[i]!='.')
x2++;
else
break;
}
if(x2>x1)
{
int k=x2-x1;
for(int i=;i<=k;i++)
{
str1=""+str1;
}
}else if(x1>x2)
{
int k=x1-x2;
for(int i=;i<=k;i++)
{
str2=""+str2;
}
}
l1=str1.length();
string str3="";
int c=;
for(int i=l1-;i>=;i--)
{
if(str1[i]=='.')
{
str3='.'+str3;
continue;
}
int x=str1[i]-''+str2[i]-''+c;
c=x/;
x=x%;
str3=char(x+'')+str3;
}
if(c!=)
{
str3=char(c+'')+str3;
}
int l3=str3.length(),f=;
for(int i=l3-;str3[i]!='.';i--)
{
if(str3[i]!='')
f=;
}
if(f==)
{
string str4="";
for(int i=;str3[i]!='.';i++)
{
str4=str4+str3[i];
}
return str4;
}
string str5="";
int ff;
l3=str3.length();
for(int i=l3-;i>=;i--)
{
if(str3[i]!='')
{
ff=i;
break;
}
}
for(int i=ff;i>=;i--)
{
str5=str3[i]+str5;
}
return str5;
}
int main()
{
string a,b;
while(cin>>a>>b)
{
string r=add(a,b);
cout<<r<<endl;
}
return ;
}
HDU1753 (大正小数相加)的更多相关文章
- float的精度,3个小数相加后精度丢失--小数比较使用bccomp()方法
$a = 1200.00;$b = 1199.80;$c = 0.1;$u = 0.12; $d = $b+$c+$u;var_dump($a);var_dump($d);var_dump(bccom ...
- HDU 1753 大明A+B (大正小数加法、字符串处理)
大明A+B Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- js 小数相加异常
var a = 0.1; var b = 0.2; a + b//0.30000000000000004 这个bug可能是因为二进制计算溢出导致的. 解决办法:将小数转换为整数进行计算 计算后结果除以 ...
- js 小数相加
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat=&qu ...
- JS中小数相加相减时出现很长的小数点的解决方式
1.问题: 平时写的代码中会出现这种情况,parseFloat(11.3-10.1) 运行的结果依然是1.200000000000001 代码示例: var arr = [0.0111,11.002, ...
- hdu 1002 A + B Problem II(大正整数相加)
代码: #include<cstdio> #include<cstring> #define Min(a,b) ((a)<(b)?(a):(b)) using names ...
- python 小数相加报错 invalid literal for int() with base 10
for i in column1: x = int(i) s += xprint "sum:",s,"count:",len(column1)# round ( ...
- JS 数字相加出现多个小数的问题
今天在页面上用到了js进行小数相加119.01+0.01,结果大家都知道应该是:119.02的,然而结果是119..0200000…. ,莫名其妙的,还以为是我写的程序有问题,后来查了下才知道这是ja ...
- 解决js小数求和出现多位小数问题
在小数相加时,可能会产生多个小数位.如下所示: var x=1+1; //2 var x=1.20+1.11; //2.31 var x=1.56+1.76; //3.3200000000 ...
随机推荐
- 【代码笔记】iOS-ios7 StatusBar
代码: RootViewController.m #import "RootViewController.h" @interface RootViewController () @ ...
- ctcms Nginx 伪静态
location /whole { rewrite ^/whole/(.+).html$ /index.php?c=whole&key=$1; } location /show { rewri ...
- Dynamics 365Online 查询Web Api的请求WebUri
在on-premises版本中,获取weburi的方式是进设置-自定义项-开发人员资源中查看地址,但online版本中的地址会有些许的差异 online的开发者资源中的地址如下图,如果你在页面java ...
- @Secured()、 @PreAuthorize() 、 @RolesAllowed()
在Spring security的使用中,为了对方法进行权限控制,通常采用的三个注解,就是@Secured().@PreAuthorize().@RolesAllowed(). 示例,修改用户密码必须 ...
- Acticity的生命周期和启动模式
典型情况下的生命周期 onCreate 表示创建Acticity,在这个方法中可以做一些初始化的操作,如加载界面布局资源,初始化Activity所需的数据 onRestart 表示重新启动Activi ...
- Django 简单用户注册
项目名 macboy app名 t1 1.项目macboy urls.py from django.conf.urls import url, include urlpatterns = [ url( ...
- map合并,相同键对应的值相加
最近在做统计钱的计算时遇到的一个需求,需要将一个大类别下的每一种钱进行特定的运算然后获得六年的钱,最后将这些钱按照年份进行汇总,获得总得大类型的六年的钱,在这个过程中采用了这种方法,每次算得钱放在ma ...
- Oracle EBS GL 创建会计科目
SELECT ct.trx_number ,l.accounting_class_code ,l.entered_dr ,l.entered_cr ,fnd_flex_ext.get_segs('SQ ...
- UML建模中简单消息、同步消息和异步消息
两种消息在UML图中的表示方法如图: 1.同步方式 两个通信应用服务之间必须要进行同步,两个服务之间必须都是正常运行的.发送程序和接收程序都必须一直处于运行状态,并且随时做好相互通信的准备. 发送程序 ...
- Oracle DB 12.2(12cR2)的一个新特性:硬解析失败的SQL语句(需要符合一定条件)打印到alert_sid.log中.
How to Identify Hard Parse Failures (Doc ID 1353015.1)Bug 16945190 - Diagnostic enhancement to dump ...