【发布时间】:2022-01-20 19:49:06
【问题描述】:
下面的代码允许用户输入值,然后取所有给定值的总和,然后通过递归给出总和。下面的代码允许用户输入每个 int 并提供 sum
import java.util.Scanner;
public class Recursion {
public static int Recursion1(int userSum)
{
if (userSum == 0) {
return userSum;
} else {
return userSum + Recursion1(userSum - 1);
}
}
public static void main(String[] args)
{
int userSum = 0;
Scanner scan = new Scanner(System.in);
System.out.println("Program Started");
System.out.println(Recursion1(userSum));
int counter = 0;
int i;
for(i=0;i < 5;i++) {
//ask user input
System.out.print("Enter any number: ");
userSum = scan.nextInt();
}
scan.close();
int sumNum=Recursion1(userSum);
System.out.println("The sum of digits is: "+sumNum);
System.out.println("Scanner Closed.");
}
}
【问题讨论】:
-
例如,当我将 10 10 10 10 10 的总和相加时,它等于 55,这是不正确的。只有当我计算 1 2 3 4 5 的总和为 15 时,它似乎才有效。
-
您对 10 10 10 10 10 的预期答案是什么? @Tonia Saba
-
您只接受最后一个用户输入,然后将所有数字相加。所以如果最后一个输入是 8 你实际上是在做
8+7+6+5+4+3+2+1。这就是为什么做1,2,3,4,5似乎它正在工作,因为最后一个是5它确实是5+4+3+2+1 -
@WingKuiTsoi 50,而不是 55
-
Recursion1根据 java 命名约定应该是recursion1。
标签: java recursion sum user-input