嗨,我有一个关于我的代码的快速问题,我需要知道错误在哪里以及为什么它没有正确显示递归和迭代方法(这会返回 stackoverflow 错误)。谢谢
import java.util.Scanner;
public class Progression {
public static int geometricRecursive(int x){
if(x == 1)
return 1;
else {
return x * geometricRecursive(x - 1);
}
}
public static int harmonicRecursive(int x){
if(x == 1)
return 1;
else {
return x * harmonicRecursive(1/(x - 1));
}
}
public static int geometricIterative(int num){
int result = 0;
if(result == 1)
return result;
else
for(int i = 2; i < num; i++){
result = (i * (i + 1));
}
return result;
}
public static int harmonicIterative(int num){
int result = 0;
if (result == 1)
return result;
else
for (int i = 2; i < num; i ++){
result = (i * (1/(i+1)));
}
return result;
}
public static void main(String [] args)
{
Scanner keyboard = new Scanner (System.in);
System.out.println("This program will calculate the geometric and ");
System.out.println("harmonic progression for the number you enter.");
System.out.print("Enter an integer that is greater than or equal to 1: ");
int input = keyboard.nextInt();
int geomAnswer = geometricRecursive (input);
double harmAnswer = harmonicRecursive (input);
System.out.println("Using recursion:");
System.out.println("The geometric progression of " + input + " is " + geomAnswer);
System.out.println("The harmonic progression of " + input + " is " + harmAnswer);
geomAnswer = geometricIterative (input);
harmAnswer = harmonicIterative (input);
System.out.println("Using iteration:");
System.out.println("The geometric progression of " + input + " is " + geomAnswer);
System.out.println("The harmonic progression of " + input + " is " + harmAnswer);
}
}