其實在絕大多數(shù)C語言編譯器內(nèi)部是有冪函數(shù)這個函數(shù)的,具體的指令是pow(a,b),這個指令實現(xiàn)的功能就是求解a^b的值,也就是求解a的b次方。 例如,假如我們要求解6的7次方,并把最終的結(jié)果存入變量result,那么我們可以這樣子寫代碼: include <math.h> //添加數(shù)學運算的頭文件 result= pow(6,7); //求解6的7次方,結(jié)果存入result 但是,如果我們自己要編寫這樣的一個冪函數(shù)該怎么樣編寫呢? 首先我們需要進行一些數(shù)學運算方法的思考,假如要求解x^n, n>0且n為整數(shù)。那么應當是這樣的: 當n=0時,x^n=x^0=1; 當n=1時,x^n=x^1=x; 當n>1時,x^n=x*x…,就是把n個x相乘。這樣就可以得到本案中的冪函數(shù)的計算流程如圖 1。 在這個程序里面,我們可以使用if條件指令進行判斷在n=0,n=1或者n>1的情況下分別進行計算。 特別指出的是,當n>1時,用到for循環(huán)函數(shù),n有多大就利用for循環(huán)進行(n-1)次的乘法運算。(承接軟件開發(fā)業(yè)務-Q-Q:2531-26-3726)那么編寫的程序如下: unsigned int pow1(unsigned int x,unsigned int n) //求解冪函數(shù),n為正整數(shù) { unsigned char i=0; if(n==0) x=1; //當n=0時,x=1 else { if(n==1) x=x; //當n=1時,x=x else //當n>1時,用for循環(huán)多次相乘 { for(i=2;i<=n;i++) {x=x*x; } } } return x; //將計算結(jié)果返回 } 在程序中其他部分調(diào)用函數(shù)pow1就能進行冪函數(shù)運算。例如求解9的11次方,結(jié)果存入變量result,那么可以像這樣調(diào)用指令pow1進行計算: result=pow1(9,11); 這樣自己編寫的一個冪函數(shù)就完成了。更多精彩內(nèi)容,盡在公號:yonkotech
|