题目描写很没意思..就是说给出n个小数 求它们的总和

因为给出的小数点后最多16位而要求保存至12位 而能直接使用的最精确的double只能到12位 于是13的进位可能被忽略 于是不可以用double

于是它就是一个很裸的小数高精度加法..还只是加法..

在比赛的时候学长很快就敲出来了代码并且AC 但是被别人极多提交的极短且超时代码唬住(猜测应该是直接相加) 以为直接相加的O(N)的复杂度尚且不可..所以甚至连试做都没有

赛后写出代码F9直接运行 但是小数上的进位转到整数上遗漏 更改后AC

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>
#include<map>
using namespace std;
int aq[300];
int bq[300];
int aw[300];
int bw[300];
char s[300];
int main() {
int n;
while(scanf("%d",&n)!=EOF) {
memset(bq,0,sizeof(bq));
memset(bw,0,sizeof(bw));
for(int j=0; j<n; j++) {
memset(aq,0,sizeof(aq));
memset(aw,0,sizeof(aw));
scanf("%s",s);
int p=strlen(s);
int len=p;
int ge=0;
for(int i=0; i<p; i++) {
if(s[i]=='.') {
p=i;
break;
}
}
int w=0;
for(int i=p+1; i<len; i++) {
aw[w++]=(s[i]-'0');
}
int ww=0;
for(int i=p-1; i>=0; i--) {
aq[ww++]=(s[i]-'0');
}
int jin=0;
for(int i=w-1; i>=0; i--) {
bw[i]+=aw[i];
bw[i]+=jin;
jin=bw[i]/10;
bw[i]%=10;
}
for(int i=0; i<ww; i++) {
bq[i]+=aq[i];
bq[i]+=jin;
jin=bq[i]/10;
bq[i]%=10;
}
int where=ww;
while(jin!=0) {
bq[where]+=jin;
jin=bq[where]/10;
bq[where]%=10;
where++;
} }
int jin=0;
if(bw[12]>=5) {
jin=1;
for(int i=11; i>=0; i--) {
bw[i]+=jin;
jin=bw[i]/10;
bw[i]%=10;
if(jin==0)
break;
}
if(jin!=0) {
for(int i=0;; i++) {
bq[i]+=jin;
jin=bq[i]/10;
bq[i]%=10;
if(jin==0)
break;
}
}
}
int ok=true;
for(int i=270; i>=0; i--) {
if(bq[i]!=0)
ok=false;
if(ok)
continue;
printf("%d",bq[i]);
}
if(ok)
printf("0");
printf(".");
for(int i=0; i<12; i++)
printf("%d",bw[i]);
printf("\n");
}
}

  

FZU 2032 高精度小数加法的更多相关文章

  1. hdu 1753 大明A+B(高精度小数加法)

    //深刻认识到自己的粗心,为此浪费了一天.. Problem Description 话说,经过了漫长的一个多月,小明已经成长了许多,所以他改了一个名字叫"大明". 这时他已经不是 ...

  2. FZU 2032 Log函数问题 模拟小数加法

    题目链接:Log函数问题 2 / 49 Problem G FZU 2032 Log函数问题 不知道为什么...比赛时高精度难倒了一票人...成功搞出大新闻... 试了一下直接double相加超时,然 ...

  3. BigDecimal类(高精度小数)

    位置:java.math.BigDecimal 作用:提供高精度小数数据类型及相关操作 一.基本介绍 BigDecimal为不可变的.任意精度的有符号十进制数,其值为(unscaledValue * ...

  4. 程序设计入门——C语言 第5周编程练习 1高精度小数(10分)

    1 高精度小数(10分) 题目内容: 由于计算机内部表达方式的限制,浮点运算都有精度问题,为了得到高精度的计算结果,就需要自己设计实现方法. (0,1)之间的任何浮点数都可以表达为两个正整数的商,为了 ...

  5. Java中的高精度整数和高精度小数

    在实际编码中,会遇到很多高精度的事例,比如,在计算金钱的时候就需要保留高精度小数,这样计算才不会有太大误差: 在下面的代码中,我们验证了,当两个float型的数字相加,得到的结果和我们的预期结果是有误 ...

  6. 高精度小数BigDecimal+二分——java

    高精度小数第一题 import java.util.*; import java.math.*; public class Main { public static void main(String ...

  7. test 5.1 高精度小数(10分)

    请写一个程序,输入一个分数,计算出它的小数形式.无论是否可以除尽,输出最多小数点后200位. 题目内容 由于计算机内部表达方式的限制,浮点运算都有精度问题,为了得到高精度的计算结果,就需要自己设计实现 ...

  8. HDUOJ-------1753大明A+B(大数之小数加法)

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

  9. uva748 - Exponentiation 高精度小数的幂运算

    uva748 - Exponentiation   Exponentiation  Problems involving the computation of exact values of very ...

随机推荐

  1. [MAC] mac系统如何显示和隐藏文件

    转载地址: http://www.cnblogs.com/lm3515/archive/2010/12/08/1900271.html 显示Mac隐藏文件的命令:defaults write com. ...

  2. August 1st, 2016, Week 32nd Monday

    Laughing is the most touching mask. 笑容是最动人的面具. I used to be very weclome in those I had met. And the ...

  3. BroadcastReceiver study

    BroadcastReceiver也就是“广播接收者”的意思,顾名思义,它就是用来接收来自系统和应用中的广播. 在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这 ...

  4. popular net

    陈皓<跟我一起写makefile>http://blog.csdn.net/haoel/article/details/2886/

  5. redhad借用CentOs yum 安装

    RedHat linux 默认是安装了yum软件的,但是由于激活认证的原因让redhat无法直接进行yum安装一些软件,如果我们需要在redhat下直接yum安装软件,我们只用把yum的源修改成Cen ...

  6. 查看网卡的流量 iptraf

    yum search iptraf Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds ...

  7. MVC学习笔记---MVC生命周期

    Asp.net应用程序管道处理用户请求时特别强调"时机",对Asp.net生命周期的了解多少直接影响我们写页面和控件的效率.因此在2007年和2008年我在这个话题上各写了一篇文章 ...

  8. 什么才是程序员的核心竞争力?zz

    原文出处: 知乎 姚冬的观点 学习能力,尤其是自学能力,你啥时看到那些有名的程序高手在论坛上问“学习 XX 该看什么书,如何快速学习 XXX,学习 XXX 有什么代码推荐”之类的问题,他们想学什么很快 ...

  9. Java Hour 29 Weather ( 2 ) Maven

    有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. Hour 29 Weather 界面 数据源采用上次取得的杭州天气的json. ...

  10. ActiveMQ Exception: java.io.EOFException: Chunk stream does not exist

    解决办法: 方法1. 去掉延迟功能:<broker xmlns="http://activemq.apache.org/schema/core " brokerName=&q ...