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\n" , c );
11     return 0;
12 }

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

附上对数的基础知识复习

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

时间: 2024-08-18 14:24:35

49:计算对数的相关文章

计算对数

c/c++中好像没有直接计算任意底数对数的函数,函数log(a)只能计算自然对数log2(a):若要计算对数log(b)a,可以通过数学里面的换底公式完成,log(b)a=log(c)a/log(c)b,令c=2,得:log(b)a=log(a)/log(b): 1 #include <bits/stdc++.h> 2 #define ll long long 3 using namespace std; 4 5 int main(void) 6 { 7 int t; 8 cin >&g

简单枚举-------计算对数

给定两个正整数a(a>1)和b.可以知道一定存在整数x,使得 x <= logab < x + 1 或者 ax<= b < ax+1 请计算x. Input两行,第一行是a,第二行是b.每个整数均不超过100位.Output一行,即对应的x.输入数据保证x不大于20.Sample Input 10000 1000000000001 Sample Output 3 #include<stdio.h> double a,b,c; int main() { int x=

整理小朋友在noi.openjudge上的作业(1)

NOI(题库正在建设中,做题纪录有可能会被删除,请注意) 第一章的统计放前面 1 编程基础之输入输出 10 0 0% 最基础有空补刷 2 编程基础之变量定义.赋值及转换 10 0 0% 最基础有空补刷 3 编程基础之算术表达式与顺序执行 20 0 0% 最基础有空补刷 4 编程基础之逻辑表达式与条件分支 21 0 0% 最基础有空补刷 5 编程基础之循环控制 45 10 22% 最基础有空补刷 6 编程基础之一维数组 15 5 33% 最基础有空补刷 7 编程基础之字符串 35 0 0% 有必要

有关科学计算方面的python解决

在科学计算方面,一般认为matlab是一个超强的东西,此外还有R. 至于某种语言来说,一般都要讲究一些特别的算法,包括但不限于: 矩阵方面的计算 指数计算 对数计算 多项式运算 各类方程求解 总之,只要是数学问题,在python里面,可以使用以下任何一个来解决 NumPy SciPy matplotlib ETS 顺便推荐一本书<用Python做科學計算>.地址是:http://myshare.dscloud.me/scipydoc/(不做超链接,看看能不能发布) 所以,用python解决数学

[数据结构与算法] 栈的应用:计算 2*2+(10-2)/(101-50*2)*3-2+5 表达式的值

声明:原创作品,转载时请注明文章来自SAP师太技术博客:www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4289892.html 1 import java.util.ArrayList; 2 import java.util.List; 3 import java.util.Stack; 4 import java.util.regex.Mat

隐马尔可夫模型的前向算法(java实现),今天奉上

隐马尔可夫模型的前向算法(手动实现),今天奉上,由于研究生期间,实现的时候没有多加注释,这里为了让更好的人进入自然语言处理领域,特此,将前向算法奉上,具体公式可参考52nlp的HMN系列博客. 参考了大部分网站公式和借鉴.在此表示感谢. 后向算法和维特比算法,后续更新. HMM类: 1 package jxutcm.edu.cn.hmm.model;  2   3 import jxutcm.edu.cn.hmm.bean.HMMHelper;  4   5 /**  6  * 实现了 HMM(

OpenCV官方文档学习记录(6)

离散傅里叶变换:DFT,文档p165 代码如下: 1 #include <opencv2\opencv.hpp> 2 #include <iostream> 3 #include <string> 4 5 #pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) 6 7 #define NUMBER 20 8 9

UVa 1151 买还是建

https://vjudge.net/problem/UVA-1151 题意: 平面上有n个点,你的任务是让所有n个点连通.为此,你可以新建一些边,费用等于两个端点的距离平方和.另外还有q个套餐可以购买,如果你购买了第i个套餐,该套餐中的所有结点都变得相互连通,第i个套餐的花费为Ci. 思路: 这道题比较容易超时.可能需要用到并查集的路径压缩,我下面的代码就是用了路径压缩,不然要超时.也是看了别人的代码才知道还有这种省时间的做法. 先介绍一下路径压缩吧: 如果并查集像一字长蛇这样排列的话,寻找起

iOS UI-QQ聊天布局

一.Model BWMessage.h #import <Foundation/Foundation.h> typedef enum{ BWMessageMe = 0,//表示自己 BWMessageOther = 1 //表示对方 }BWMessageType; @interface BWMessage : NSObject //消息正文 @property(nonatomic, copy) NSString *text; //消息时间 @property(nonatomic, copy)