标题:连续奇数乘积的二进制位
只看楼主
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
直接用肯定时间比较长,最大的数估计五秒出来。

#include<stdio.h>
#include<math.h>
int main()
{
    int n , m ;
    while(EOF!=(scanf("%d%d",&n,&m))&&!(n==0||m==0))
    {
        int temp;
        double rezult = 0.0;
        if(n>m)
        {
            temp = n ;
            n = m ;
            m = temp ;
        }
        if(n%2==0){
            n++ ;
        }
        for(int i = n ; i <= m ; i += 2)
        {
            rezult += log10(i);    
        }
        printf("%ld\n",long(rezult/log10(2))+1);
    }
    return 0 ;
}

倚天照海花无数,流水高山心自知。
2008-09-15 16:54
ivapple
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2008-7-31
得分:0 
数比较大的时候用斯特林公式近似求阶乘,
我就是这么做的,不到1s。
2008-09-15 17:45
geninsf009
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:613
专家分:95
注 册:2008-8-16
得分:0 
学习了,还是我的数学功底不够啊...
2008-09-17 22:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-229335-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.149198 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved