gpt4 book ai didi

java - 在递归中使用 for 循环

转载 作者:行者123 更新时间:2023-11-29 03:18:42 25 4
gpt4 key购买 nike

所以我试图打印出递归指数方法的实际过程,然后打印出最后的值,但是我的 for 循环有问题。例如,如果用户输入 4 的 4 次方,它应该打印出 4 到 4、4 到 3、4 到 2 等,然后打印出 4 到 4 次方的正确值,但我一直得到 0 的值结束。

import java.util.Scanner; 

public class Recursion
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);

System.out.println("Enter base: ");
int baseNum = input.nextInt();

System.out.println("Enter exponent: ");
int expNum = input.nextInt();

for(int i = 1; i <= baseNum; ++i)
{

System.out.printf("\n%d to the %d", baseNum, expNum--);

}

System.out.printf("\nValue is %d",power(baseNum, expNum));
}



public static int power(int base, int exponent)
{
if(base == 0)
return 1;

else
return exponent * power(base - 1, exponent);
}
}

最佳答案

您混淆了底数和指数。 power 方法应该这样定义:

public static int power(int base, int exponent) {
if(exponent == 0) {
System.out.println(1); // for display
return 1;
}
else {
int rem = power(base, exponent-1);
if (rem > 1) {
System.out.println(rem); // for display
}
return base * rem;
}
}

用法

public static void main(String[] args) {
System.out.println(power(4,2)); // prints 16
}

关于java - 在递归中使用 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24967320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com