程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 用log(N)的解法實現數值的整數次方

用log(N)的解法實現數值的整數次方

編輯:C++入門知識

//   
//  main.m   
//  c++test   
//   
//  Created by andyyang on 6/3/13.   
//  Copyright (c) 2013 andyyang. All rights reserved.   
//   
  
//#import <Foundation/Foundation.h>   
#include "stdio.h"   
#include "string.h"   
  
int power(double base,int exponent)  
{  
 if(exponent==0)  
 {  
     return 1;  
 }  
    if(exponent==1)  
    {  
        return base;  
    }  
    if(exponent &0x01)  
    {  
        return power(base,exponent>>1)*power(base,exponent>>1)*base;  
    }else  
    {  
        return power(base,exponent>>1)*power(base,exponent>>1);  
    }  
}  
int main(int argc, const char * argv[])  
{  
    double ret=power(12, 2);  
    printf("%f",ret);  
    getchar();      
    return 0;  
}  

//
//  main.m
//  c++test
//
//  Created by andyyang on 6/3/13.
//  Copyright (c) 2013 andyyang. All rights reserved.
//

//#import <Foundation/Foundation.h>
#include "stdio.h"
#include "string.h"

int power(double base,int exponent)
{
 if(exponent==0)
 {
     return 1;
 }
    if(exponent==1)
    {
        return base;
    }
    if(exponent &0x01)
    {
        return power(base,exponent>>1)*power(base,exponent>>1)*base;
    }else
    {
        return power(base,exponent>>1)*power(base,exponent>>1);
    }
}
int main(int argc, const char * argv[])
{
    double ret=power(12, 2);
    printf("%f",ret);
    getchar();    
    return 0;
}

 

充分利用位運算,高效低實現數值的整數次方

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved