| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2425 人关注过本帖
标题:连续奇数乘积的二进制位
只看楼主 加入收藏
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
快速回复:连续奇数乘积的二进制位
数据加载中...
 
   



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

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