题目描写很没意思..就是说给出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. eclipse 切换svn账号

    1. 查看你的Eclipse中使用的是什么SVN Interface,位置在          windows > preference > Team > SVN 2. 如果是用的J ...

  2. (五)转载:通用定时器PWM输出

    1.     TIMER输出PWM基本概念 脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有 ...

  3. LinuxC语言读取文件,分割字符串,存入链表,放入另一个文件

    //file_op.c #include <string.h> #include <stdio.h> #include <stdlib.h> struct info ...

  4. svn 结合rsync 的代码发布系统

    由开发提交到测试环境,经测试,在由运维统一上线.试验需求一台测试服务器,一台线上(生产环境)服务器.测试服务器上跑svn是开发用于代码管理,而线上跑的svn是运维用来代码上线的.结合rsync保持测试 ...

  5. Zookeeper笔记(四)Zookeeper在Dubbo中的应用

    Zookeeper在Dubbo中的应用 Dubbo的架构 节点角色说明: Provider: 暴露服务的服务提供方.Consumer: 调用远程服务的服务消费方.Registry: 服务注册与发现的注 ...

  6. 【maven 报错】maven项目update之后报错One or more constraints have not been satisfied.

    在右键项目Update Project之后报错:One or more constraints have not been satisfied.Spring 4.1 requires Java 1.6 ...

  7. Rotating Sentences

    #include<bits/stdc++.h> #define N 110 int main(void) { char s[N][N]; int i, j, k, max; , memse ...

  8. Wp8—LongListSelector控件使用

    其实从去年后半年起,自己就开始学习windows phone 8 的开发,主要是自己感兴趣同时我也很看好这个系统(现在还是感觉自己认识的有点晚了).工作日的话基本很忙,所以当时想到然的认为用晚上时间可 ...

  9. request操作的几个容易混淆的请求路径

    假定你的web application 名称为news,你在浏览器中输入请求路径: http://localhost:8080/news/main/list.jsp 则执行下面向行代码后打印出如下结果 ...

  10. 简单几何(点的位置) POJ 1584 A Round Peg in a Ground Hole

    题目传送门 题意:判断给定的多边形是否为凸的,peg(pig?)是否在多边形内,且以其为圆心的圆不超出多边形(擦着边也不行). 分析:判断凸多边形就用凸包,看看点集的个数是否为n.在多边形内用叉积方向 ...