2 条题解
-
2240803gj徐嘉昊 (2212224徐嘉昊) LV 10 @ 2024-02-15 15:13:48
//这题要用数学知识来解,这样做最方便 //首先,我们要算n^n的位数,那么我们要想到10^?的位数怎么求 //比如10^2=100,是两位,10^3=1000,是三位,所以10^?的位数就是?+1位 //然后我们要把n^n转换成10^?,这个要用到对数log(不懂得可以上网查一查) //易得n^n=10^log(n^n) //所以,n^n的位数就是log(n^n)+1 //但是如果算n^n就会爆空间 //所以我们要适当转换一下 //运用对数运算公式,原式=n*log(n)+1 //然后让c++代入运算即可 //可能有些地方我没讲明白,欢迎在下面提问 //这个题可以参照03年普及组复赛T4的麦森数 //里面第一问求n^p-1的位数的方法和这题是一样的
-
12024-08-21 13:08:45@
必须用对数算(高精度算1亿的1亿次方,......)
#include<iostream> #include<cmath> using namespace std; int main(){ ios::sync_with_stdio(false); int n; cin >> n; cout << floor(n*log10(n))+1; return 0; }
- 1
信息
- ID
- 1215
- 难度
- 7
- 分类
- (无)
- 标签
- 递交数
- 28
- 已通过
- 6
- 通过率
- 21%
- 上传者