uva 10916 Factstone Benchmark
2013-09-27 18:56
393 查看
利用对数的性质
#include <stdio.h> #include <math.h> double a[260000]; int b[260000]; void init() { int i; for(i=1; i<260000; i++) { a[i] = a[i-1] + log((double)i)/log(2.0); } for(i=1; i<260000; i++) { b[i] = floor(a[i]) + 1; } } void func(double bits) { int l, r, m; int target = (int)bits; l = 1; r = 259999; while(1) { m = (l+r)/2; if(b[m]<=target && target<b[m+1]) { break; } else if(target < b[m]) { r = m - 1; } else { l = m + 1; } } //printf("target=%d b[m]=%d b[m+1]=%d a[m]=%lf a[m+1]=%lf\n", target, b[m], b[m+1], a[m], a[m+1]); printf("%d\n", m); } int main(void) { int year; init(); while(1) { scanf("%d", &year); if(0 == year) break; func( pow(2.0,(year-1960)/10) *4 ); } return 0; }
相关文章推荐
- UVA 10916 Factstone Benchmark
- UVa 10916 Factstone Benchmark
- UVA - 10916 Factstone Benchmark
- uva 10916 - Factstone Benchmark
- UVA - 10916 Factstone Benchmark(数学)
- Uva 10916 Factstone Benchmark
- UVA 10916 Factstone Benchmark
- uva 10916 Factstone Benchmark(打表)
- Uva 10916 - Factstone Benchmark
- UVA 10916 - Factstone Benchmark
- UVa 10916 - Factstone Benchmark
- UVA-10916 Factstone Benchmark
- UVa 10916 - Factstone Benchmark
- UVA - 10916 Factstone Benchmark
- UVa 10916 - Factstone Benchmark
- UVa 10916 - Factstone Benchmark
- uva 10916 Factstone Benchmark(对数函数的活用)
- UVa 10916 - Factstone Benchmark
- uva 10916 Factstone Benchmark
- uva-10916 - Factstone Benchmark