http://poj.org/problem?id=2661
题意:给定n, 2n > k! . 求最大的k
解法:两边取log比较。
//#include <bits/stdc++.h> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <iostream> #include <string> #include <stdio.h> #include <queue> #include <stack> #include <map> #include <set> #include <string.h> #include <vector> #define ME(x , y) memset(x , y , sizeof(x)) #define SF(n) scanf("%d" , &n) #define rep(i , n) for(int i = 0 ; i < n ; i ++) #define INF 0x3f3f3f3f #define mod 20191117 #define PI acos(-1) using namespace std; typedef long long ll ; int main() { int n ; while(~scanf("%d" , &n) && n) { double w = 2 ; for(int i = 1960 ; i <= n ; i+=10) { w *= 2 ; } w *= log(2); int ans = 1 ; double f=0 ; while(w >= f) { f += log((double)++ans); } cout << ans - 1 << endl ; } return 0; }