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

编写FizzBuzz程序:按规则输出x到y内容(支持多测试用例)

实现FizzBuzz:输出指定区间内的数字或对应标识

需求概述

需要编写Java程序完成以下功能:

  • 遍历给定区间[x, y]内的每个数字,按规则输出:
    • 同时是3和5的倍数:输出FizzBuzz
    • 仅是3的倍数:输出Fizz
    • 仅是5的倍数:输出Buzz
    • 其他情况:输出数字本身
  • 输入规则:
    • 第一行输入测试用例数T
    • 第二行输入2*T个整数,每两个整数为一组,对应一组测试用例的x和y
  • 约束:1 ≤ T ≤ 10

输入示例:

2
3 15 1 10

(注:示例包含两组测试用例:3-15和1-10)

初始代码问题分析

提供的初始代码仅完成了输入读取和整数转换,没有实现FizzBuzz的核心逻辑,也没有对输入的整数进行分组处理(每组对应x和y)。

完善后的代码

import java.util.Scanner;

class TestClass {
    public static void main(String args[]) throws Exception {
        Scanner scan = new Scanner(System.in);
        
        // 读取测试用例数T
        int T = Integer.parseInt(scan.nextLine());
        // 读取后续的所有整数
        String[] inputParts = scan.nextLine().split(" ");
        
        // 每组测试用例对应两个整数:x和y,循环处理每组
        for (int i = 0; i < 2 * T; i += 2) {
            int x = Integer.parseInt(inputParts[i]);
            int y = Integer.parseInt(inputParts[i + 1]);
            
            // 遍历x到y的每个数字
            for (int num = x; num <= y; num++) {
                String output = "";
                // 判断是否为3的倍数
                if (num % 3 == 0) {
                    output += "Fizz";
                }
                // 判断是否为5的倍数
                if (num % 5 == 0) {
                    output += "Buzz";
                }
                // 如果output为空,说明不是3或5的倍数,直接输出数字
                System.out.println(output.isEmpty() ? num : output);
            }
            // 每组测试用例输出后添加空行分隔(可选)
            System.out.println();
        }
        scan.close();
    }
}

代码关键说明

  1. 输入处理:先读取测试用例数T,再读取后续的整数数组,通过步长为2的循环分组获取每组的x和y
  2. FizzBuzz逻辑:使用字符串拼接的方式,先判断3的倍数追加Fizz,再判断5的倍数追加Buzz。如果最终字符串为空,说明是普通数字,直接输出数字本身
  3. 区间遍历:对每组的x到y进行逐个遍历,按规则输出结果

内容的提问来源于stack exchange,提问作者akshay gupta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 17:58:29