factstone专题

uva 10916 Factstone Benchmark(打表)

题意是求 k ! <= 2 ^ n ,的最小k。 由于n比较大,大到 2 ^ 20 次方,所以 2 ^ 2 ^ 20比较难算,所以做一些基础的数学变换。 对不等式两边同时取log2,得: log2(k ! ) <=  log2(2 ^ n)= n,即:log2(1) + log2(2) + log2 (3) + log2(4) + ... + log2(k) <= n ,其中 n 为 2 ^

hdu 1141 Factstone Benchmark

主题思想: 用对数来缩小数的量级。 因为数实在太大了。 n!<2^x. 给出x 求出n. 利用对数把乘法变成加法,且减小量级。 log2(n!)<log(2^x)=xlog2(1)+log2(2)+...+log(n)<x AC 代码 #include <iostream>#include<cstdio>#include<cmath>using namespace std;co

uva 10916 Factstone Benchmark

题意:给你一个年份y,1960<=y<=2160,从1960年的4位整数开始,每10年位数都会乘以2,要你输出一个数n,使得n!能被当前的位数表示出来。 取对数。 #include <iostream>#include <cstdio>#include <cmath>#include <cstring>using namespace std;const int N=30;int