zoukankan      html  css  js  c++  java
  • 49:计算对数

    题目http://noi.openjudge.cn/ch0113/49/

    总时间限制:1000ms  内存限制:65536kB
    描述

    给定两个正整数a(a>1)和b。可以知道一定存在整数x,使得

    x <= logab < x + 1 或者 ax<= b < ax+1

    请计算x。

    输入
    两行,第一行是a,第二行是b。每个整数均不超过100位。
    输出
    一行,即对应的x。输入数据保证x不大于20。
    样例输入
    10000
    1000000000001
    样例输出
    3

    乍一看,估计要用高精度求解。仔细看看,数据范围竟然在double范围内,可以直接用double解决。
    套用对数的换底公式,立马解决。

     1 #include<stdio.h>
     2 #include<math.h>
     3 int main()
     4 {
     5     int n;
     6     int c;
     7     double a, b;
     8     scanf( "%lf%lf", &a, &b );
     9     c = log10( b ) / log10( a );
    10     printf( "%d
    " , c );
    11     return 0;
    12 }

    C语言中,双精度浮点(double)型,占8 个字节(64位)内存空间。其数值范围为-1.7E308~1.7E+308,双精度完全保证的有效数字是15位,16位只是部分数值有保证,而单精度保证7位有效数字,部分数值有8位有效数.

    附上对数的基础知识复习

    C语言标准数学库函数的自然对数和常用对数

  • 相关阅读:
    程序员面试金典-整数对查找
    hihocoder-1552-缺失的拼图
    论文: YOLO9000-Better,Faster,Stronger
    hihocoder-1524-逆序对
    hihocoder-1546-集合计数
    hihocoder-1543-SCI表示法
    Oracle中的定时任务JOB
    JS中时间戳处理
    Boostrap小技巧
    Struts标签 logic:iterate简单使用
  • 原文地址:https://www.cnblogs.com/huashanqingzhu/p/6603971.html
Copyright © 2011-2022 走看看