真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

劍指Offer之?dāng)?shù)值的整數(shù)次方(題11)

創(chuàng)新互聯(lián)建站專注于鳳山企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),成都做商城網(wǎng)站。鳳山網(wǎng)站建設(shè)公司,為鳳山等地區(qū)提供建站服務(wù)。全流程按需求定制網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)

 1 /****************************************
  2     > File Name:test.c
  3     > Author:xiaoxiaohui
  4     > mail:1924224891@qq.com
  5     > Created Time:2016年05月23日 星期一 22時(shí)37分14秒
  6 ****************************************/
  7 
  8 #include
  9 
 10 int flog = 0;
 11 int power(double base, int exponent)                                                                                                      
 12 {
 13 
 14     if(equal(base, 0,0))    //如果底數(shù)是0,則返回0.0,并且把flog置為非0值,
 15     {                       //來(lái)檢查當(dāng)返回0時(shí)返回的是本身還是出錯(cuò)了。
 16         flog = 1;
 17         return 0.0;
 18     }
 19 
 20     int exp = exponent;    //使指數(shù)為正數(shù)
 21     if(exponent < 0)
 22     {
 23         exp = 0 - exponent;
 24     }
 25 
 26     int result = count(base, exp);
 27     if(exponent < 0)
 28     {
 29         result = 1.0 / result;
 30     }
 31 
 32     return result;
 33 }
 34 
 35 int equal(double num1, double num2)
 36 {
 37     if( (num1 - num2) > -0.0001 && (num1 - num2) < 0.0001)
 38     {
 39         return 1;
 40     }
 41     else
 42     {
 43         return 0;
 44     }
 45 }
 46 
 47 double count(double base, int num)
 48 {
 49     double result = base;
 50     int i = 0;
 51     for(; i < num - 1; i++)
 52     {
 53         result *= base;
 54     }
 55     return result;
 56 }

 1 /****************************************
  2     > File Name:test.c
  3     > Author:xiaoxiaohui
  4     > mail:1924224891@qq.com
  5     > Created Time:2016年05月23日 星期一 22時(shí)37分14秒
  6 ****************************************/
  7 
  8 
  9 
 10 //首先要排除base為0的情況,而為0并且當(dāng)規(guī)定返回0時(shí),為了區(qū)分是返回值為0還是返回錯(cuò)誤
 11 //就要設(shè)置一個(gè)flog值。然后再區(qū)分指數(shù)為負(fù)值和正值的情況。然后算出結(jié)果返回。
 12 
 13 
 14 #include
 15 
 16 int flog = 0;                                                                                                                             
 17 int power(double base, int exponent)
 18 {
 19 
 20     if(equal(base, 0.0))    //如果底數(shù)是0,則返回0.0,并且把flog置為非0值,
 21     {                       //來(lái)檢查當(dāng)返回0時(shí)返回的是本身還是出錯(cuò)了。
 22         flog = 1;
 23         return 0.0;
 24     }
 25 
 26     int exp = exponent;    //使指數(shù)為正數(shù)
 27     if(exponent < 0)
 28     {
 29         exp = 0 - exponent;
 30     }
 31 
 32     int result = count(base, exp);
 33     if(exponent < 0)
 34     {
 35         result = 1.0 / result;
 36     }
 37 
 38     return result;
 39 }
 40 
 41 int equal(double num1, double num2)
 42 {
 43     if( (num1 - num2) > -0.0001 && (num1 - num2) < 0.0001)
 44     {
 45         return 1;
 46     }
 47     else
 48     {
 49         return 0;
 50     }
 51 }
 52 
 53 double count(double base, int num)
 54 {
 55     if(num == 0)
 56     {
 57         return 1;
 58     }
 59 
 60     if(num == 1)
 61     {
 62         return base;
 63     }
 64 
 65     double result = count(base, num >> 1);
 66     result *= result;
 67 
 68     if(num & 1)     //bit最后一位為1肯定是奇數(shù) 并且num除2只會(huì)得到偶數(shù),所以
 69     {               //遞歸內(nèi)部并不會(huì)執(zhí)行這一行
 70         result *= base;
 71     }
 72 
 73     return result;
 74 }
 75 
 76 
 77 //總結(jié),當(dāng)返回值為0時(shí),要設(shè)置全局變量flog以區(qū)分返回值為0還是返回錯(cuò)誤。
 78 //浮點(diǎn)數(shù)比較時(shí)要比較一個(gè)區(qū)間。
 79 //算n次方可以看成斐波那契數(shù)列的算法。
 80 //判斷是否為奇數(shù)可以按位與1

文章題目:劍指Offer之?dāng)?shù)值的整數(shù)次方(題11)
鏈接URL:http://weahome.cn/article/pdesip.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部