首頁 > 後端開發 > C++ > 主體

使用遞歸函數產生x的n次冪的C程序

PHPz
發布: 2023-08-25 22:33:09
轉載
1897 人瀏覽過

使用遞歸函數產生x的n次冪的C程序

問題

計算x的n次方的值,其中x和n都是由使用者在執行時輸入的

#解

使用C程式語言中的遞歸函數產生x的n次方的值的解如下−

找到x的n次方的邏輯如下所述−

//Calling function:
Xpow=power(x,n);
//Called function:
if (n==1)
   return(x);
else if ( n%2 == 0)
   return (pow(power(x,n/2),2)); /*if n is even*/
else
   return (x*power(x, n-1));
登入後複製

演算法

參考下面給出的演算法,使用遞歸函數產生x的n次方的值。

步驟1 - 讀取長整數變數

步驟2 - 宣告函式原型

步驟3 - 呼叫函數

Xpown=power(x,n) goto step 5
登入後複製

第四步驟 − 列印xpown

第五步 − 呼叫函數

   第5.1步 − if (n==1)

      步驟5.1.1步驟 − return(x)

   第5.2步 − Else if (n%2 == 0)

      第5.2.1步 − Return (pow(power(x,n/2),2)); / *若n是偶數*/

   第5.3步 − Else

      步驟5.3.1步驟 − Return (x*power (x, n-1)); /*如果n是奇數*/

程式

以下是使用遞迴函數產生x 的n 次方值的C 程式−

#include <stdio.h>
#include <math.h>
void main(){
   long int x, n, xpown;
   long int power(int x, int n);
   printf("Enter the values of X and N: </p><p>");
   scanf("%ld %ld", &x, &n);
   xpown = power (x, n);
   printf("X to the power N = %ld</p><p>",xpown);
}
/*Recursive function to computer the X to power N*/
long int power(int x, int n){
   if (n==1)
      return(x);
   else if ( n%2 == 0)
      return (pow(power(x,n/2),2)); /*if n is even*/
   else
      return (x*power(x, n-1)); /* if n is odd*/
}
登入後複製

#輸出

當上述程式被執行時,它產生以下結果−

Enter the values of X and N:
5 4
X to the power N = 625
登入後複製

以上是使用遞歸函數產生x的n次冪的C程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板