如何检查数字是 3 的倍数还是包含数字 5?

Posted

技术标签:

【中文标题】如何检查数字是 3 的倍数还是包含数字 5?【英文标题】:How can I check if number is multiple of 3 or contains the digit 5? 【发布时间】:2021-11-19 16:21:11 【问题描述】:
digit = 5
for i in range(1, 101):
    if i % 3 == 0:
        print ("MultipleOfThree", end=" ")
    elif i:
        for digit in str(i):
            print ("FiveInIt", end=" ")
    else:
        print(i, end=" ")

我想在一行中看到这样的:

1 2 MultipleOfThree 4 FiveInIt MultipleOfThree 7 8 MultipleOfThree 10 11 MultipleOfThree 12 13 14 FiveInIt ........ 

但输出给出:

FiveInIt FiveInIt MultipleOfThree FiveInIt FiveInIt MultipleOfThree .......

【问题讨论】:

【参考方案1】:

应该是:

digit = 5
for i in range(1, 101):
    if i % 3 == 0:
        print ("MultipleOfThree", end=" ")
    elif str(digit) in str(i):
        print ("FiveInIt", end=" ")
    else:
        print(i, end=" ")

【讨论】:

小评:必须是elif str(digit) in str(i): @DanielLenz 对!谢谢! 首先,得到错误:'in ' requires string as left operand, not int 但是当我在str(i)中尝试str(digit)时,没关系谢谢跨度> @ÜmitYaman 感谢 DanielLenz 的评论,我修复了它【参考方案2】:

这应该可以工作

digit = '5'
for i in range(1, 101):
    if i % 3 == 0:
        print("MultipleOfThree", end=" ")
    elif digit in str(i):
        print("FiveInIt", end=" ")
    else:
        print(i, end=" ")

【讨论】:

以上是关于如何检查数字是 3 的倍数还是包含数字 5?的主要内容,如果未能解决你的问题,请参考以下文章

湖南省第6届程序大赛第3题 数字整除

如何创建一个给定正整数的函数,返回一个向量,该向量的数字是 5 的倍数?

如何检查 int var 是不是包含特定数字

如何检查字符串是不是包含字符或数字 C++ 和 C#

计算1-200之间不是7倍数的数字的累计和 C语言

检查一个数组是否包含一个给定的数字