| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2619 人关注过本帖, 1 人收藏
标题:分治法求a的n次方???
只看楼主 加入收藏
msshadow
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-5-30
收藏(1)
 问题点数:0 回复次数:11 
分治法求a的n次方???
如题,怎么样用分治的方法来做这个问题呢????
搜索更多相关主题的帖子: 治法 
2007-12-19 20:54
HJin
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:401
专家分:0
注 册:2007-6-9
收藏
得分:0 
int power(int a, int n)
{
    if(n==0)
        return 1;
    if(n&1)
        return a*power(a, n-1);
    else
        return power(a*a, n>>1);

}

int main()
{
    int i;

    for(i=0; i<10; ++i)
        cout<<power(2, i)<<endl;


    return 0;
}

I am working on a system which has no Chinese input. Please don\'t blame me for typing English.
2007-12-20 09:37
圆圆的鸟蛋
Rank: 1
等 级:新手上路
帖 子:216
专家分:0
注 册:2007-4-22
收藏
得分:0 
楼上,,强!!  很强调时间效率啊!

鸟蛋开始孵化。。。我等待那一天Forever。。
2007-12-21 10:31
木吉他
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-12-17
收藏
得分:0 
double power(double x,int n)
{
  double val=1.0;
  while(n--)
   val*=x;
   return(val);
}
2007-12-21 11:58
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
int power(int a,int n){
    int e = 1;
    while (n){
        if (n&1)
            e *= a;
        a *= a;
        n >>= 1;
    }
    return e;
}

和2楼一样,不过是迭代

Fight  to win  or  die...
2007-12-21 20:29
醉生梦死
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2007-8-21
收藏
得分:0 
收获了

2007-12-30 23:49
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
斑竹就是斑竹,都很厉害,收获中...
2007-12-31 13:44
kidd2005
Rank: 1
等 级:新手上路
帖 子:193
专家分:0
注 册:2007-11-2
收藏
得分:0 
2 4 5楼的都不明白啊,
可以解释一下吗?

潜心苦C,却发觉百C不得其解啊~
2007-12-31 15:42
醉生梦死
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2007-8-21
收藏
得分:0 
我看你是对位运算不熟悉吧,if(n&1)等与if(n%2==0)

2008-01-01 02:32
醉生梦死
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2007-8-21
收藏
得分:0 
回复 8# 的帖子
主要是降低了程序的复杂度

2008-01-01 02:33
快速回复:分治法求a的n次方???
数据加载中...
 
   



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

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