java - 递归困扰我
问题描述
我对这一切都很陌生,所以..谢谢
只是好奇为什么这不起作用。
它告诉我 public int sumFirst(int n) 是表达式的非法开始。
package program8;
public class Program8 {
public static void main(String[] args) {
public int sumFirst(int n)
{
Scanner input = new Scanner(System.in);
n = input.nextInt();
if (n == 0)
return 0;
else
return sumFirst(n-1) + sumFirst(n-2);
}
}
解决方案
一方面,您试图在 main 方法中定义一个不起作用的方法;方法只能在类级别定义。
其次,每个递归都会n = input.nextInt();
在方法内部sumFirst
执行,这可能不是您想要的。
试试这个:
public class Program8 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println(sumFirst(input.nextInt()));
}
public int sumFirst(int n) {
if (n == 0) {
return 0;
} else {
return sumFirst(n-1) + sumFirst(n-2);
}
}
}
推荐阅读
- google-apps-script - 从外部域获取 Google 表格中的活动用户名
- amazon-ec2 - 从云端创建 proxy_pass 到 ec2 实例
- android - Flutter android应用程序-找不到android.support.v4.content.FileProvider
- csv - SSIS 执行任务无法通过 sqlserver 代理按预期工作
- python - 在张量流中创建顺序模型时出现尺寸不匹配
- google-cloud-platform - 未知 BigQuery Google Ads 数据传输服务错误:非经理帐户不存在(或帐户未处于活动状态),因此不会导入数据
- mysql - 分组或消除列中的重复字段
- python - X 每个样本有 67 个特征,预计为 207
- mips - 要求用户输入两个数字,将它们存储在内存中,进行加法和减法并显示两个结果
- sql - 通过多个连接、分组和排序来加速查询