C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

再帰を使用して自然数の合計を見つけるC++プログラム


自然数は1から始まる正の整数です。

自然数のシーケンスは-

です
1, 2, 3, 4, 5, 6, 7, 8, 9, 10……

再帰を使用して最初のn個の自然数の合計を見つけるプログラムは次のとおりです。

#include <iostream>
using namespace std;
int sum(int n) {
   if(n == 0)
   return n;
   else
   return n + sum(n-1);
}
int main() {
   int n = 10;
   cout<<"Sum of first "<<n<<" natural numbers is "<<sum(n);
   return 0;
}

出力

Sum of first 10 natural numbers is 55

上記のプログラムでは、関数sum()は再帰関数です。 nが0の場合、最初の0個の自然数の合計が0であるため、0を返します。nが0より大きい場合、sumは値n-1で自分自身を再帰的に呼び出し、最終的にn、n-1の合計を返します。 、n-2…...2,1。これを示すコードスニペットは次のとおりです。

int sum(int n) {
   if(n == 0)
   return n;
   else
   return n + sum(n-1);
}
を返します。

関数main()では、最初のn個の自然数の合計がcoutを使用して表示されます。これは次のように見ることができます-

cout<<"Sum of first "<<n<<" natural numbers is "<<sum(n);

  1. 最初のn個の自然数の二乗和のためのC++プログラム?

    この問題では、最初のn個の自然数の2乗の合計を取得する方法を確認します。ここでは、1からnまで実行されるforループを使用しています。各ステップで、項の2乗を計算し、それを合計に追加します。このプログラムは、完了するまでにO(n)時間かかります。しかし、これをO(1)または一定時間で解きたい場合は、この級数式-を使用できます。 アルゴリズム squareNNatural(n) begin    sum := 0    for i in range 1 to n, do       sum := sum + i^2 &

  2. Pythonで再帰を使用して自然数の合計を見つける方法は?

    関数がそれ自体を呼び出す場合、それは再帰関数と呼ばれます。無限ループに陥らないようにするために、条件付きステートメントで再帰呼び出しが行われます。 次のプログラムは、ユーザーからの入力として数値を受け取り、それを引数としてrsum()関数に送信します。 1に達するまで毎回引数をデクリメントすることにより、再帰的に自分自身を呼び出します。 def rsum(n):     if n <= 1:         return n     else:         retu