poj 2661 (로그 에 대한 응용)

제목 링크:http://poj.org/problem?id=2661
이용:
2^n<1*2*3...m
n < log 21 + log 22 + log 23.
코드:
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <string>
using namespace std;
int find(int n){
	double t=pow((double)2,(n-1960)/10+2),sum=0;
	int i=0;
	for(i=2;sum<t;i++){
		sum+=log((double)i)/log((double)2);
	}
	return i-2;
}
int main(){
	int n=0;
	while(scanf("%d",&n)&&n){
		printf("%d
",find(n)); } }

좋은 웹페이지 즐겨찾기