zoj 2545 || poj 2661 Factstone Benchmark

    技术2022-05-19  19

    嘻嘻,最喜欢这种题啦。

     

    给你年代,求得最大的n,使得n的阶乘在那个年代的整型范围内。

     

    1960是4-bit的。每十年位数增长一倍。

     

    直接从1开始往上*=2,k从1开始,如果大于k,/= k ,k++,继续这样下去。。。就OK了。。1A,嘻嘻,zoj好几天没做了。。。

     

    #include <queue> #include <stack> #include <math.h> #include <stdio.h> #include <stdlib.h> #include <iostream> #include <limits.h> #include <string.h> #include <algorithm> using namespace std; int main() { int n,i; while( ~scanf("%d",&n) && n ) { int p = 1<<((n-1960)/10+2); double sum = 1.0; int k = 1; for(i=1; i<=p; i++) { sum *= 2.0; if( sum > k ) { k++; sum /= k; } } printf("%d/n",k); } return 0; }  


    最新回复(0)