java - Java中的递归问题
问题描述
我正在尝试解决 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 语句上写什么来结束递归。
解决方案
执行以下操作:
import java.util.Scanner;
public class Main {
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) {
if (h == 0) {
return v;
}
return TotalVirus(h - 1, 2 * v + f, f);
}
}
示例运行:
Hours:
0
Total : 32
另一个示例运行:
Hours:
1
Total : 74
另一个示例运行:
Hours:
2
Total : 158
推荐阅读
- machine-learning - 有没有办法让封闭域聊天机器人使用 seq2seq、生成建模或其他方法(如 RNN)来构建?
- php - 使用 PHP 的 Ajax 帖子不回显数据
- database - Flask-admin 获取数据
- python - 异常值处理部分零值过多怎么办?
- java - 即使外部 API 发出请求,okHTTP3 也能进行拦截吗?
- android - 路径中不得包含 //
- android - 调用 Method: purchase.subscriptions.get 端点时出现 UNAUTHENTICATED 错误
- php - 如何将内容类型标头设置为空?
- csv - 如果列名有逗号作为列分隔符,如何在 pyspark 中将 csv 读入 df?
- python - what is the need for .py and .kv files with kivy