FZU 2032 Log函数问题 模拟小数加法
题目链接:Log函数问题
![]() |
2 / 49 | Problem G | FZU 2032 | Log函数问题 |
不知道为什么...比赛时高精度难倒了一票人...成功搞出大新闻...
试了一下直接double相加超时,然后放弃(汗),然后double 有效数字最多16位的话,确实需要高精度了呢...
然后,机智的代码:
#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std; int ans[200];
char num[210]; int main() {
int n;
while(~scanf("%d", &n)) {
memset(ans, 0, sizeof(ans)); for (int i=0; i<n; ++i) {
scanf("%s", num);
int len = strlen(num);
int point = 0; for (int i=0; i<len; ++i) {
if (num[i] == '.') {
point =i;
break;
}
} int cnt = 100;
// 整数部分
for (int i=point-1; i>=0; --i) {
ans[cnt--] += num[i] - '0';
} // 小数部分
cnt = 101;
for (int i=point+1; i<len; ++i) {
ans[cnt++] += num[i] - '0';
}
} for (int i=199; i>0; --i) { // 检查进位
ans[i-1] += ans[i] / 10;
ans[i] %= 10;
} if (ans[113] >= 5) ans[112]++; // 四舍五入 保留12位小数 for (int i=199; i>0; --i) { // 四舍五入之后检查进位
ans[i-1] += ans[i] / 10;
ans[i] %= 10;
} int out = 0;
for (int i=0; i<113; ++i) {
if (ans[i] || i == 100) out = 1; // 遇见第一个不是0的数 或者 到了小数部分
if (out) printf("%d", ans[i]); // 就可以直接输出了
if (i == 100) printf(".");
}
printf("\n");
}
return 0;
}
突然觉得acmerhaizhentingyukuaidene...
讲道理,高精度本来就是模拟ba...
FZU 2032 Log函数问题 模拟小数加法的更多相关文章
- n阶乘,位数,log函数,斯特林公式
一.log函数 头文件: #include <math.h> 使用: 引入#include<cmath> 以e为底:log(exp(n)) 以10为底:log10(n) 以m为 ...
- POJ 1001 Exponentiation 模拟小数幂
模拟小数幂 小数点位 pos 非零末位 e 长度 len 只有三种情况 pos > len pos < e e < pos < len #include <iostrea ...
- KEILC51可重入函数及模拟栈浅析
MARK:文章中的红色部分是个人的理解. KEILC51可重入函数及模拟栈浅析 关键字:keilc51,模拟堆栈,可重入函数调用,参数传递,C?XBP,C?ADDXBP 摘要:本文较详细的介绍了kei ...
- math。h中的log函数的应用
以10为底的log函数: 形式为 double log10(double x) 以e为底的log函数(即 ln)double log (double x) 如何表达log 以a为底b的对数: 用换 ...
- Oracle中关于处理小数点位数的几个函数,取小数位数,Oracle查询函数
Oracle中关于处理小数点位数的几个函数,取小数位数,Oracle查询函数 关于处理小数点位数的几个oracle函数()1. 取四舍五入的几位小数select round(1.2345, 3) fr ...
- LeetCode 326 Power of Three(3的幂)(递归、Log函数)
翻译 给定一个整型数,写一个函数决定它是否是3的幂(翻译可能不太合适-- 跟进: 你能否够不用不论什么循环或递归来完毕. 原文 Given an integer, write a function t ...
- matlab中log函数与rssi转距离
我们通常所说的log是指以10为底的对数,而MATLAB中的log却不是这样.Matlab中的log函数在默认情况下是以e为底,即loge,如果需要计算以10为底的对数,那么需要用log10()函数. ...
- PAT L1-009 N个数求和(模拟分数加法)
本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数“分子/分母”的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(<=100).随后一行按格 ...
- mysql 用存储过程和函数分别模拟序列
在其他大部分DBMS里都有序列的概念,即Sequence或Generator. 而mysql里没有,但有时真的很有用.下面分别用存储过程和函数来模拟序列,并用程序模拟并发场景来测试原子性和完整性,是否 ...
随机推荐
- XAF应用开发教程(一) 创建项目
XAF是DevExpress公司的快速开发框架,全称eXpress Application Framework,是企业信息系统的开发利器,快速开发效果显著,在.net框架中,笔者至今没有找到一款可以与 ...
- 领域驱动设计系列文章——浅析VO、DTO、DO、PO的概念、区别和用处
本篇文章主要讨论一下我们经常会用到的一些对象:VO.DTO.DO和PO. 由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概念进行一个简单描述,名字只是个标识,我们重点关注其概念: 概念: ...
- iOS - VIPER 架构模式
1.VIPER 从字面意思来理解,VIPER 即 View Interactor Presenter Entity Router(展示器(视图) 交互器 协调器 实体(数据) 路由器),迄今为止,划分 ...
- shiro连接数据库
建一个jdbcRealm.ini [main] jdbcRealm=org.apache.shiro.realm.jdbc.JdbcRealm dataSource=com.mchange.v2.c3 ...
- Git与Repo入门(转载)
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAykAAADuCAIAAACyDd+sAAAAA3NCSVQICAjb4U/gAAAgAElEQVR4Xu ...
- Python学习笔记17—Tornado
实例 #!/usr/bin/env Python #coding:utf-8 import tornado.httpserver import tornado.ioloop import tornad ...
- POJ 2063 Investment 完全背包
题目链接:http://poj.org/problem?id=2063 今天果然是卡题的一天.白天被hdu那道01背包的变形卡到现在还没想通就不说了,然后晚上又被这道有个不大也不小的坑的完全背包卡了好 ...
- 原创: 开题报告中摘要部分快速将一段文字插入到word的表格中
开题报告的摘要是表格形式,之前需要一个一个字的敲入,十分不方便修改. 所以百度了一下方法.现总结如下: 达到的效果 1 将这段文字复制粘贴到word中,在word文件中的每一个字与字之间插入空格.如何 ...
- 使用命令参数方式指定log4j配置文件
http://blog.csdn.net/changong28/article/details/39717209 ******************************************* ...
- codeblock报__objc_class_name_xxx问题
添加来一个class文件,在其他文件调用时,报下面这个错误: undefined reference to `__objc_class_name_Test' 右击Test这个类的文件弹出Propert ...