首页 > 解决方案 > 根据条件打印某个输出

问题描述

编写一个程序,打印给定范围内的数字。但是对于三的倍数打印“Fizz”而不是数字,对于五的倍数打印“Buzz”。对于同时是三和五的倍数的数字打印“FizzBu​​zz”。在每个字符串或数字之后打印一个新行。

输入格式:- 第一行将是测试用例的数量,T。下一行将有 T 个整数,用 N 表示。

输出格式:- 对于每个测试用例,打印从 1 到 N 的数字。但请遵循问题陈述中给出的规则。

样本输入 1

2
3 15

这是我的代码:-

n_input = int(input())

x, y = map(int, input().split(" "))

for i in range(1, x + 1):
    if i % 3 == 0 and i % 5 == 0:
        print("FizzBuzz", sep="\n")
    elif i % 3 == 0:
        print("Fizz", sep="\n")
    elif i % 5 == 0:
        print("Buzz", sep="\n")
    else:
        print(i, sep="\n")


for i in range(1, y+1):
    if i % 3 == 0 and i % 5 == 0:
        print("FizzBuzz", sep="\n")
    elif i % 3 == 0:
        print("Fizz", sep="\n")
    elif i % 5 == 0:
        print("Buzz", sep="\n")
    else:
        print(i, sep="\n")

我知道我的错误是我必须根据初始输入进行打印,但我不知道如何修复它。谢谢

标签: pythonpython-3.x

解决方案


k = int(input()) # useless given what we're doing below
cases = [int(i) for i in input().split()]
for case in cases:
    for k in range(1, case + 1):
        out = ""
        if (k % 3) == 0:
            out += "fizz"
        if (k % 5) == 0:
            out += "buzz"

        if out != "":
            print(out)
        else:
            print(k)

第二行是简写

cases = []
for i in input().split():
    cases.append(int(i))

运行我的 Colab 笔记本


推荐阅读