ホームページ >バックエンド開発 >C++ >再帰関数を使用して x の n 乗を生成する C プログラム

再帰関数を使用して x の n 乗を生成する C プログラム

PHPz
PHPz転載
2023-08-25 22:33:091946ブラウズ

再帰関数を使用して 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

#ステップ 4

− xpown#ステップ 5

の呼び出し - 関数の呼び出し

## ステップ 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−

#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*/
}

の n 乗値を生成する C プログラムです。出力

上記のプログラムを実行すると、次の結果が生成されます -

Enter the values of X and N:
5 4
X to the power N = 625

以上が再帰関数を使用して x の n 乗を生成する C プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。