再帰関数を使用してxpowernの値を生成するCプログラム
問題
x n の値を計算します 、ここで、xとnは両方とも、実行時にユーザーによって与えられた入力です
解決策
Cプログラミング言語の再帰関数を使用してxpowernの値を生成するソリューションは、次のとおりです-
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));
アルゴリズム
再帰関数を使用してxpowernの値を生成するには、以下のアルゴリズムを参照してください。
ステップ1 −longint変数を読み取る
ステップ2 −関数プロトタイプを宣言する
ステップ3 −関数を呼び出す
Xpown=power(x,n) goto step 5
ステップ4 −xpownを印刷
ステップ5 −呼び出された関数
ステップ5.1 − if(n ==1)
ステップ5.1.1 − return(x)
ステップ5.2 −それ以外の場合(n%2 ==0)
ステップ5.2.1 − return(pow(power(x、n / 2)、2)); /*nが偶数の場合*/
ステップ5.3 −その他
ステップ5.3.1 − return(x * power(x、n-1)); /*nが奇数の場合*/
プログラム
以下は、再帰関数を使用してxpowernの値を生成する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: \n"); scanf("%ld %ld", &x, &n); xpown = power (x, n); printf("X to the power N = %ld\n",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
-
関数内のポインターを使用して合計と差を見つけるCプログラム
aとbの2つの数があるとします。 (a + b)と(a --b)の両方を計算できる関数を定義する必要があります。ただし、Cの関数を使用すると、最大で1つの値を返すことができます。複数の出力を見つけるために、ポインターを使用して関数の引数に出力パラメーターを使用できます。この問題では、aをa + bで更新し、bをa-bで更新します。関数を呼び出すときは、これら2つの変数のアドレスを渡す必要があります。 したがって、入力がa =5、b =8の場合、出力はa + b=13およびa--b=-3になります。 これを解決するには、次の手順に従います- 関数solve()を定義します。これは、aと
-
再帰関数を使用して数値のGCDを見つけるCプログラム
問題 Cプログラミング言語の再帰関数を使用して、指定された2つの数値の最大公約数(GCD)を見つけます。 解決策 再帰関数を使用して、指定された2つの数値の最大公約数(GCD)を見つけるための解決策は、次のとおりです- アルゴリズム 再帰関数を使用して、指定された2つの数値の最大公約数(GCD)を見つけるには、以下のアルゴリズムを参照してください。 ステップ1 −再帰関数を定義します。 ステップ2 −2つの整数aとbを読み取ります。 ステップ3 −再帰関数を呼び出します。 a. if i>j b. then return the function with parameter