Computer >> Máy Tính >  >> Lập trình >> Java

Chương trình Java để tìm tổng của số số bằng cách sử dụng đệ quy

Trong bài này, chúng ta sẽ hiểu cách tìm tổng của N số bằng cách sử dụng đệ quy. Một hàm đệ quy là một hàm gọi chính nó nhiều lần cho đến khi một điều kiện cụ thể được thỏa mãn.

Đệ quy là quá trình lặp lại các mục theo cách tương tự. Trong ngôn ngữ lập trình, nếu một chương trình cho phép bạn gọi một hàm bên trong cùng một hàm, thì nó được gọi là lệnh gọi đệ quy của hàm.

Nhiều ngôn ngữ lập trình thực hiện đệ quy bằng các ngăn xếp. Nói chung, bất cứ khi nào một hàm (người gọi) gọi một hàm khác (callee) hoặc chính nó là callee, thì hàm người gọi sẽ chuyển quyền kiểm soát thực thi đến callee. Quá trình chuyển này cũng có thể liên quan đến một số dữ liệu được chuyển từ người gọi đến người gọi.

Dưới đây là một minh chứng về điều tương tự -

Đầu vào

Giả sử đầu vào của chúng tôi là -

Enter the value of N : 6
Enter the elements of array :
15 30 45 80 100 140

Đầu ra

Đầu ra mong muốn sẽ là -

The total of N numbers is : 410

Thuật toán

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

Ví dụ 1

Ở đây, đầu vào đang được người dùng nhập dựa trên lời nhắc. Bạn có thể thử ví dụ này trực tiếp trong công cụ nền tảng mã hóa của chúng tôi Chương trình Java để tìm tổng của số số bằng cách sử dụng đệ quy .

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);
   }
}

Đầu ra

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

Ví dụ 2

Ở đây, số nguyên đã được xác định trước đó và giá trị của nó được truy cập và hiển thị trên bảng điều khiển.

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");
   }
}

Đầu ra

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