You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java中实现输入一次数字后执行6次连续调用?

修改后的代码
import java.util.Scanner;

class Main {
    public static int count = 0;

    public static int fibonacci(int a) {
        count += 1;
        if (a <= 1) {
            return a;
        }
        return fibonacci(a - 1) + fibonacci(a - 2);
    }

    public static void main(String args[]) {
        int n = 6;
        // 仅执行一次输入逻辑
        Scanner s = new Scanner(System.in);
        System.out.println("Enter a number: ");
        int a = s.nextInt();
        s.close();

        for (int i = 1; i <= n; ++i) {
            count = 0; // 每次计算前重置调用计数
            long start = System.currentTimeMillis();
            
            int result = fibonacci(a);
            
            long end = System.currentTimeMillis();
            System.out.println("第" + i + "次计算结果: " + result);
            System.out.println("本次fibonacci函数调用次数: " + count);
            System.out.println("本次计算耗时: " + ((end - start) / 1000.0) + "秒");
            System.out.println("---------------------------");
        }
    }
}
关键修改说明
  • 输入逻辑移至循环外:把用户输入操作从for循环中抽离,确保只需要输入一次数字,后续6次循环复用该数值。
  • 重置静态计数变量:由于count是静态变量,会在多次调用中累加,因此每次循环开始时重置为0,保证统计的是单次计算的函数调用次数。
  • 优化时间计算方式:用System.currentTimeMillis()替代new Date().getTime(),实现相同功能的同时更简洁高效。
  • 增加循环次数标识:输出中明确标注当前是第几次计算,让结果展示更清晰。
  • 关闭Scanner资源:使用完毕后关闭Scanner,避免不必要的资源占用。

内容的提问来源于stack exchange,提问作者Elizabeth Meza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 07:55:27