https://cn.vjudge.net/problem/UVA-11809

题意:很长orz

题解:算一下输入范围,发现用double是读不进来的,在这里wa了半天,(double 1e300  longdouble 1e4000)这题会1e20201780 orz

所以分别读入mantissa a和 exponent b,然后取对数得到一个等式:log(a) + b*log(10)==log(m) + e * log(2),其中m,e是答案,因为范围很小,可以直接二重循环暴力找。打表可以优化一点。

坑:标程是用公式的 ,懒得推,虽然我一开始也是用公式。。。

常识性错误,不知道c++里写作log读作ln,卡了半天 orz

#include<iostream>
#include<string>
#include<cstring>
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<stdio.h>
#include<algorithm>
#include<set>
#include<bitset>
using namespace std; #define rep(i,j,k) for(int i = (int)j;i <= (int)k;i ++)
#define per(i,j,k) for(int i = (int)j;i >= (int)k;i --)
#define debug(x) cerr<<#x<<" = "<<(x)<<endl
#define mmm(a,b) memset(a,b,sizeof(a))
#define pb push_back
#define eps 1e-7int main()
{
double a,b;
while (~scanf("%17lfe%lf",&a,&b)&&(b || a)) {
a = log(a) + b*log();
rep(i, , )rep(j, , ) {
double m = , e = ;
rep(jj, , j)m += , m /= ;
rep(ii, , i)e *= , e += ;
if (abs(a- log(m) - e * log())<eps)cout << j << ' ' << i << endl; }
} }
/*
5.699141892149156e76
9.205357638345294e18
0e0 5 8
8 6 6.741349255732847e307
1.937500000000000e0
8.970910077290883e307
2.734479740168092e20201780
5.443088840828674e2465
7.100722886226033e80807123
7.499999999999997e0
4.461493107584252e4931
7.930743765436021e78912
1.638399999999996e4
6.284909967160199e153
5.794969071594055e40403561
7.874999999999996e0
7.049550013794259e78912
5.205075292180178e4931
2.094479696316021e323228496
5.999999999999998e0
7.513237239003285e19727
2.065788087458129e323228496
5.112881885711930e2465 1 10
4 1
8 10
0 26
8 13
6 28
3 2
1 14
5 18
0 4
3 9
4 27
5 2
2 18
2 14
8 30
1 2
1 16
5 30
3 13
*/

wa的代码

#include<iostream>
#include<string>
#include<cstring>
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<stdio.h>
#include<algorithm>
using namespace std; const double eps = 1e-;
int main()
{
double a,b;
while (cin>>a&&a))
{
int cnt = , cnt2 = ;
a = a * pow(, b);
while (abs(a -)> eps)a/=,cnt++; cnt++;
while (cnt)cnt >>= , cnt2++; cnt2--;
cnt = ;
while (abs(a-/)>eps)
a *= , a -= , cnt++; cnt--;
cout <<cnt<<' '<< cnt2<<endl;
} return ;
}
/* 5.699141892149156e76
9.205357638345294e18
0e0 */

【每日一题】 UVA - 11809 Floating-Point Numbers 阅读题+取对数处理爆double的更多相关文章

  1. 【习题 3-12 UVA - 11809】Floating-Point Numbers

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] \(A*10^B = temp[M]*2^{2^E-1}\) 两边取一下对数 得到 \(lg_A+B = lg_{temp[M]} ...

  2. UVA 11809 - Floating-Point Numbers

    数学太渣了,这道题反复参考了大神的博客,算是看懂了吧.博客原文  http://blog.csdn.net/crazysillynerd/article/details/43339157 算是个数学题 ...

  3. UVA 11582 Colossal Fibonacci Numbers(数学)

    Colossal Fibonacci Numbers 想先说下最近的状态吧,已经考完试了,这个暑假也应该是最后刷题的暑假了,打完今年acm就应该会退了,但是还什么都不会呢? +_+ 所以这个暑假,一定 ...

  4. uva 10712 - Count the Numbers(数位dp)

    题目链接:uva 10712 - Count the Numbers 题目大意:给出n,a.b.问说在a到b之间有多少个n. 解题思路:数位dp.dp[i][j][x][y]表示第i位为j的时候.x是 ...

  5. UVA 10539 - Almost Prime Numbers(数论)

    UVA 10539 - Almost Prime Numbers 题目链接 题意:给定一个区间,求这个区间中的Almost prime number,Almost prime number的定义为:仅 ...

  6. UVA.10881 Piotr's Ants (思维题)

    UVA.10881 Piotr's Ants (思维题) 题意分析 有一根长度为L cm的木棍,上有n只蚂蚁,蚂蚁要么向左爬,要么向右,速度均为1cm/s,若2只蚂蚁相撞,则蚂蚁同时调头.求解第T秒时 ...

  7. UVA.11300 Spreading the Wealth (思维题 中位数模型)

    UVA.11300 Spreading the Wealth (思维题) 题意分析 现给出n个人,每个人手中有a[i]个数的金币,每个人能给其左右相邻的人金币,现在要求你安排传递金币的方案,使得每个人 ...

  8. UVA.12096 The SetStack Computer ( 好题 栈 STL混合应用)

    UVA.12096 The SetStack Computer ( 好题 栈 STL混合应用) 题意分析 绝对的好题. 先说做完此题的收获: 1.对数据结构又有了宏观的上的认识; 2.熟悉了常用STL ...

  9. LeetCode算法题-Maximum Product of Three Numbers(Java实现)

    这是悦乐书的第275次更新,第291篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第143题(顺位题号是628).给定一个整数数组,从其中找出三个数,使得乘积最大.例如: ...

随机推荐

  1. sed 简明教程 (转)

    sed 简明教程 2013年2月20日   awk于1977年出生,今年36岁本命年,sed比awk大2-3岁,awk就像林妹妹,sed就是宝玉哥哥了.所以 林妹妹跳了个Topless,他的哥哥sed ...

  2. SQL SERVER 行列转换(动态)

    行转列测试数据: --测试数据 if not object_id(N'Tempdb..#T') is null drop table #T Go Create table #T([Name] nvar ...

  3. connect by prior start with 语句实现树递归查询[百度经验]

    TART WITH CONNECT BY PRIOR子句实现递归查询 TART WITH CONNECT BY PRIOR这个语法主要用于查询数据包中的树型结构关系.先看下原始数据时怎么样的吧! 表中 ...

  4. spring boot user authorities类图

  5. Socket网络编程--聊天程序(1)

    很早的一段时间,看了APUE和UNPv1了解了网络编程,但是但是只是看而已,没有具体的实践,趁现在没有什么事做,就来实践了解一下网络编程.写博客保存下来,方便以后用到的时候可以查到. 此次的聊天程序是 ...

  6. pandas数组(pandas Series)-(5)apply方法自定义函数

    有时候需要对 pandas Series 里的值进行一些操作,但是没有内置函数,这时候可以自己写一个函数,使用 pandas Series 的 apply 方法,可以对里面的每个值都调用这个函数,然后 ...

  7. Android查询不到电话号码解决方法

    貌似联系人有三个数据库,且不同步,另外也有可能是版本问题. 解决方案:https://github.com/codinguser/android_contact_picker 接下来会对其进行一些改造 ...

  8. 9款最好的JavaScript压缩工具

    削减是一个从源代码中删除不必要的字符的技术使它看起来简单而整洁.这种技术也被称为代码压缩和最小化.在这里,我们为你收集了10个最好的JavaScript压缩工具将帮助您删除不必要的空格,换行符,评论, ...

  9. html网页采集

    UI_Less.pas: unit UI_Less; interface uses Windows, Classes, Messages, Forms, MsHtml, Urlmon, ActiveX ...

  10. oracle 函数to_char(数据,'FM999,999,999,999,990.00') 格式化数据(转)

    转载自:https://blog.csdn.net/fupengyao/article/details/52778565 遇到了oracle 取数格式问题,这里记一下 我们通常在做数据算数后,会想要让 ...