其實在絕大多數C語言編譯器内部是有幂函數這個函數的,具體的指令是pow(a,b),這個指令實現的功能就是求解a^b的值,也就是求解a的b次方。
例如,假如我們要求解6的7次方,并把最終的結果存入變量result,那麼我們可以這樣子寫代碼:
include <math.h> //添加數學運算的頭文件
result= pow(6,7); //求解6的7次方,結果存入result
但是,如果我們自己要編寫這樣的一個幂函數該怎麼樣編寫呢?
首先我們需要進行一些數學運算方法的思考,假如要求解x^n, n>0且n為整數。那麼應當是這樣的:
當n=0時,x^n=x^0=1;
當n=1時,x^n=x^1=x;
當n>1時,x^n=x*x…,就是把n個x相乘。這樣就可以得到本案中的幂函數的計算流程如圖 1。
在這個程序裡面,我們可以使用if條件指令進行判斷在n=0,n=1或者n>1的情況下分别進行計算。
特别指出的是,當n>1時,用到for循環函數,n有多大就利用for循環進行(n-1)次的乘法運算。(承接軟件開發業務-Q-Q: 2531-26-3726)那麼編寫的程序如下:
unsigned int pow1(unsigned int x,unsigned int n) //求解幂函數,n為正整數
{
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循環多次相乘
{
for(i=2;i<=n;i )
{x=x*x;
}
}
}
return x; //将計算結果返回
}
在程序中其他部分調用函數pow1就能進行幂函數運算。例如求解9的11次方,結果存入變量result,那麼可以像這樣調用指令pow1進行計算:
result=pow1(9,11);
這樣自己編寫的一個幂函數就完成了。更多精彩内容,盡在微-信公-衆号:yonkotech
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!