求第N个斐波那契的数值

问题遇到的现象和发生背景

求第N个斐波那契的数值,自己感觉代码没有问题,但是运行就报错

问题相关代码,请勿粘贴截图

import java.util.Scanner;
public class Xun4
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.print("请输入你要查询的第n个数的值");
int n = scan.nextInt();
int num1 = 1,num2 = 1;//前两个数
int t = 0;
for (int k = 2;k < n ;k++ )//从2开始
{
t = num1 + num2;//第三个数是前两个数之和
num2 = t; //交换num1和num2的值
num1 = num2;
}
System.out.println("你要查询的第n个数的值为:"+num2);
}
}

运行结果及报错内容

Xun4.java:18: 错误: 需要class, interface或enum
}
^
1 个错误

我的解答思路和尝试过的方法

尝试过推翻重新编写,但是还是报错

我想要达到的结果

正常运行

你这个代码运行起来确实没有问题,你这个错误不是你代码的问题,不过你代码本身又有问题,应该改成这样

package com.xuexi.test;

import java.util.Scanner;

public class Xun4 {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.print("请输入你要查询的第n个数的值");
        int n = scan.nextInt();
        int num1 = 1, num2 = 1;//前两个数
        int t = 0;
        for (int k = 2; k < n; k++)//从2开始
        {
            t = num1 + num2;//第三个数是前两个数之和
            num1 = num2;
            num2 = t; //交换num1和num2的值
        }
        System.out.println("你要查询的第n个数的值为:" + num2);

        // 1 2 3 4 5
        // 1 1 2 3 5

    }
}

img

img


这里需要交换位置,应该是
num1 = num2;
num2 = t; //交换num1和num2的值

借用第三个中间数来传值,不然就会被覆盖掉