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

再帰を使用してN個の数の合計を見つけるJavaプログラム


この記事では、再帰を使用してN個の数の合計を見つける方法を理解します。再帰関数は、特定の条件が満たされるまで自分自身を複数回呼び出す関数です。

再帰は、自己相似的な方法でアイテムを繰り返すプロセスです。プログラミング言語では、プログラムで同じ関数内の関数を呼び出すことができる場合、それは関数の再帰呼び出しと呼ばれます。

多くのプログラミング言語は、スタックを使用して再帰を実装します。一般に、関数(呼び出し元)が別の関数(呼び出し先)またはそれ自体を呼び出し先として呼び出すときはいつでも、呼び出し元関数は実行制御を呼び出し先に移します。この転送プロセスには、発信者から着信者に渡されるデータも含まれる場合があります。

以下は同じのデモンストレーションです-

入力

入力が-

であると仮定します
Enter the value of N : 6
Enter the elements of array :
15 30 45 80 100 140

出力

必要な出力は-

になります
The total of N numbers is : 410

アルゴリズム

Step 1 - START
Step 2 - Declare two integer values namely N , my_sum and i and an integer array ‘my_array’
Step 3 - Read the required values from the user/ define the values
Step 4 - A recursive function ‘RecursiveSum is defined which takes two integers as input. The function computes the reminder by re-iterating over the function multiple times, until the base condition is reached.
Step 5 - The recursive function ‘RecursiveSum is called and its result is stored
Step 6 - Display the result
Step 7 - Stop

例1

ここでは、プロンプトに基づいてユーザーが入力を入力しています。この例は、コーディンググラウンドツールでライブで試すことができます 再帰を使用してN個の数の合計を見つけるJavaプログラム

import java.util.Scanner;
public class ArraySum {
   public static int RecursiveSum(int my_array[], int i,int N){
      if (i == N)
         return 0;
      return my_array[i] + RecursiveSum(my_array, i + 1,N);
   }
   public static void main(String[] args){
     int N, my_sum, i;
     N = 6;
     my_sum = 0;
     System.out.println("Required packages have been imported");
     Scanner my_scanner = new Scanner(System.in);
     System.out.println("A reader object has been defined ");
     System.out.print("Enter the value of N : ");
     N = my_scanner.nextInt();
     int my_array[] = new int[N];
     System.out.println("Enter the elements of the array :" );
     for ( i = 0 ; i < N ; i++ ){
        my_array[i] = my_scanner.nextInt();
     }
     my_sum = RecursiveSum(my_array, 0, N);
     System.out.println("\n The total of N numbers is : " + my_sum);
   }
}

出力

Required packages have been imported
A reader object has been defined
Enter the value of N : 6
Enter the elements of the array :
15
30
45
80
100
140
The total of N numbers is : 410

例2

ここでは、整数は事前に定義されており、その値にアクセスしてコンソールに表示されます。

public class Main {
   public static void main(String[] args) {
      int[] my_array = {15, 20, 25, 30, 35, 40};
      int my_input , i, array_size;
      array_size = 5;
      my_input = 25;
      boolean my_check = false;
      System.out.println("The number is defined as " +my_input);
      System.out.println("The elements in the integer array is defined as :" );
      for ( i = 0 ; i < array_size ; i++ ){
         System.out.print(my_array[i] +" ");
      }
      for ( i = 0 ; i < array_size ; i++ ) {
         if (my_array[i] == my_input) {
            my_check = true;
            break;
         }
      }
     if(my_check)
        System.out.println("\nThe array contains the given value");
     else
        System.out.println("\nThe array doesnot contain the given value");
   }
}

出力

The number is defined as 25
The elements in the integer array is defined as :
15 20 25 30 35
The array contains the given value

  1. 2つの数値の合計と差を見つけるCプログラム

    2つの整数a、bと2つの浮動小数点数c、dがあるとします。 aとb、およびcとdの合計を見つける必要があります。また、aとcの合計も見つける必要があります。そのため、printf関数のスタイルによっては、出力が異なる場合があります。 したがって、入力がa =5、b =58 c =6.32、d =8.64のような場合、出力はa + b =63 c + d =14.960001 a + c =11.320000になります。 これを解決するには、次の手順に従います- a + bを出力するには、両方とも整数であるため、printf( %d)が機能します c + dを印刷するには、どちら

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