【发布时间】:2020-04-21 16:32:44
【问题描述】:
我正在尝试解决 Java 中的递归问题,但我坚持这个问题。我要把问题放在这里,我做了什么。感谢您的帮助:D
发现了一种新型病毒,一家公司要求我们编写一个公式,使我们能够找出特定时间该病毒的种群增长情况。最初,在时间 0 (h),我们有 32 个病毒,每小时病毒数量翻倍。此外,每小时添加固定数量的病毒 (num)。
a) 执行递归函数,计算一个小时内给定的病毒总数和给定病毒的固定数字。
b) 计算在 0、1 和 2 小时我们将拥有的病毒数量,固定数量为 10。
这就是我所做的:
public static void main (String [] Args) {
Scanner in = new Scanner(System.in);
int h, v, f, result;
f = 10;
v = 32;
System.out.println("Hours: ");
h = in.nextInt();
result = TotalVirus (h, v, f);
System.out.println("Total : " + result);
}
public static int TotalVirus (int h, int v, int f) {
int counter = 1, result;
if ( counter == h) {
return 1;
}
else {
counter = counter + 1;
v = v + 32 + f;
result = TotalVirus(h,v,f);
}
return result;
}
}
我真的不知道在 if 语句上写什么来结束递归。
【问题讨论】:
-
你在哪里定义
counter? -
你的变量名混合了葡萄牙语和英语,请修正它以便这里的人能够理解。 @QBrute
counter是contador -
我刚刚修好了,抱歉,我是用西班牙语修的,所以它是混合的
-
不是每次调用递归方法totalVirus时计数器都设置为零吗?方法名称应以小写字符开头。
-
没错,我现在将计数器设置为 1,但我仍然输给了 if 语句来完成递归。