cogs 558 奇怪的函数

提交地址:http://cojs.tk/cogs/problem/problem.php?pid=558

558. 奇怪的函数

★☆   输入文件:xx.in   输出文件:xx.out   简单对比
时间限制:1 s   内存限制:32 MB

问题描述

使得x^x达到或超过n位数字的最小正整数x是多少?

输入数据

输入一个正整数n。

输出数据

输出使得x^x达到n位数字的最小正整数x。

输入样例

11

输出样例

10

时间限制

各测试点1秒

内存限制

你的程序将被分配32MB的运行空间

数据规模

n<=2 000 000 000

 1 #include<cstdio>
 2 #include<cmath>
 3 #define maxx 10000000000
 4 using namespace std;
 5 unsigned long long x,ans,l=1,r=maxx;
 6 unsigned long long n;
 7 unsigned long long f(unsigned long long x){
 8     return (x*(log10(x))+1);
 9 }
10 int main(){
11     scanf("%lld",&n);
12     while(l<r){
13         x=(l+r)/2;
14         if(f(x)<n) l=x+1;
15         else r=x;
16     }
17     printf("%lld",l);
18     return 0;
19 }
时间: 2024-10-09 09:02:18

cogs 558 奇怪的函数的相关文章

洛谷 P2759 奇怪的函数

P2759 奇怪的函数 题目描述 使得 x^x 达到或超过 n 位数字的最小正整数 x 是多少? 输入输出格式 输入格式: 一个正整数 n 输出格式: 使得 x^x 达到 n 位数字的最小正整数 x 输入输出样例 输入样例#1: 11 输出样例#1: 10 说明 n<=2000000000 思路:根据换底公式 可以推得,当x*log10(x)==n-1时x^x恰好为n位数,所以二分查找即可,在特判一下为1的情况. #include<cmath> #include<cstdio>

洛谷P2759 奇怪的函数

P2759 奇怪的函数 题目描述 使得 x^x 达到或超过 n 位数字的最小正整数 x 是多少? 输入输出格式 输入格式: 一个正整数 n 输出格式: 使得 x^x 达到 n 位数字的最小正整数 x 输入输出样例 输入样例#1: 11 输出样例#1: 10 说明 n<=2000000000 换底公式 /* 相当于解不等式x^x>=10^(n-1) 两边取常用对数 x*log10(x)>=n-1 左边是单调增的 然后二分查找就行了 */ #include<iostream> #

asp中的一个奇怪的函数

/* 豆腐制作 都是精品 http://www.asp888.net 豆腐技术站 如转载 请保留版权信息 */ asp中有很多的文章在研究如何提高asp程序的执行效率,我们 得出结论 在<% 和 %> 之间的代码执行的速度要高于 在这个 标签之外的代码,我们有没有想过 如何重复的利用这些在标签之外的代码呢? 有的人可能觉得 这个没有什么意义!但是我们可以 怀着 一种很轻松的心态来看看下面这个例子,看看 我们得到了什么有趣的现象!在这个例子中,我们用到了 MSDN 中没有介绍的 WriteBlo

奇怪的函数 (wikioi 3538/1696) 题解

[题目描述] 给定n,使得x^x达到或超过n位数字的最小正整数x是多少? [样例输入] 11 [样例输出] 10 [解题思路] 首先想到枚举,但是范围有点大,n<=2*10^9,果断用二分.其实这道题并不难,要用到一个求位数的公式trunc(t*(ln(t)/ln(10)))+1,初三自然是没学的,直接抄上公式,AC……,二分的时候注意一下退出的条件.(wikioi上1696和3538的题目不一样,但同一个程序都能AC,也不知道1696中的k是干嘛的……) [代码实现] 1 var n:qwor

好题收集(2) 奇怪的函数(数学)

奇怪的函数 Description洛谷P2759使得$x^x$达到或超过 $n$ 位数字的最小正整数 $x$ 是多少? Hint乍一看是一道数学题其实就是一道数学题$a$ 在 $b$ 进制下的位数 $p$ 的计算公式为 $p=\lfloor log_b a \rfloor+1$其实很好理解:设$\lfloor x \rfloor$表示不超过 $x$ 的最大整数,若 $n=(a_k,a_k-1,…a_1,a_0)_b,a_k≠0$,则$$b^k≤n<b^{k+1} ⇒k≤log_bn<k+1$$

【CodeVS】 p1696 奇怪的函数

题目描述 Description 自从得到上次的教训后,John的上课态度认真多了,也变得更爱动脑筋了.今天他又学习了一个新的知识:关于 xk 的位数. 如果x大于0小于l,那么位数=1+小数部分×k, 如果x≥l,那么位数=trunc(ln(x)/ln(10)×k)+1+小数部分×k. 根据这些函数知识,他学会了求xk的位数了.但他又想到了另外一个问题,如果已知位数N,能不能求出使得 xk 达到或超过N位数字的最小正整数x是多少? 输入描述 Input Description 输入一个正整数n

P2759 奇怪的函数

题目描述 使得 x^x 达到或超过 n 位数字的最小正整数 x 是多少? 输入输出格式 输入格式: 一个正整数 n 输出格式: 使得 x^x 达到 n 位数字的最小正整数 x 输入输出样例 输入样例#1: 11 输出样例#1: 10 说明 n<=2000000000 题解:二分答案 实质是求 x^x>=10^(n-1), log(x^x)>=log(10^(n-1)) x*log(x)>=n-1 因为左边是单调的 二分即可. 代码: #include<iostream>

【洛谷P2759】奇怪的函数

x^x>=10^(n-1) lg x^x>=n-1 x*lg x>=n-1 x*(log2 x/log2 10)>=n-1 左边单调递增,二分x即可 1 #include<cstdio> 2 #include<cstring> 3 #include<cmath> 4 using namespace std; 5 const int N=1000000000; 6 int n,l,r,mid; 7 int check(int x){ 8 if (x

luogu P2759 奇怪的函数 二分答案+数论

题目描述 使得 x^x 达到或超过 n 位数字的最小正整数 x 是多少? 输入输出格式 输入格式: 一个正整数 n 输出格式: 使得 x^x 达到 n 位数字的最小正整数 x 输入输出样例 输入样例#1: 11 输出样例#1: 10 说明 n<=2000000000 判断位数important #include<iostream> #include<cmath> using namespace std; int n; bool can(int x) { if(x*(log(x