使用递归计算N个数之和的Java程序


在本文中,我们将学习如何使用递归Java中求N个数之和。递归是指一个方法重复调用自身,直到满足基本条件。在Java中,每个递归调用都会被放入堆栈中,直到达到基本情况,之后返回值用于计算结果。

问题陈述

给定一个整数数组,编写一个Java程序使用递归查找所有N个数之和。

输入

The user provides the value of N, the number of integers to sum.
The user inputs N integers to be summed.

输出

The program should output the sum of the N numbers.

使用递归求N个数之和的步骤

以下是使用递归求N个数之和的步骤。

  • 声明两个整数值和一个整数数组
  • 从用户读取所需的值/定义值
  • 定义一个递归函数“RecursiveSum”,它接收两个整数作为输入。该函数通过多次重复迭代自身来计算余数,直到达到基本条件。
  • 调用递归函数“RecursiveSum”并将结果存储起来
  • 将最终的和输出给用户。

使用递归计算N个数之和的Java程序

下面是一个使用递归计算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

访问并显示之前在控制台中定义的整数的Java程序。

以下是访问并显示之前在控制台中定义的整数的Java程序示例。

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

代码解释

程序定义了一个递归函数RecursiveSum来计算数组的和。它会一直调用自身直到达到基本情况,并将当前元素添加到总和中。在main()函数中,用户输入数组大小和元素,最后程序使用RecursiveSum显示总和。

更新于:2024年11月7日

440 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.