用python怎么解答

输入两个正整数 m 和 k,其中1 < m < 100000,1 < k < 5 ,判断 m 能否被19整除,且恰好含有k个3,如果满足条件,则输出YES,否则,输出NO。 
例如,输入: 
43833 3 
满足条件,输出YES。
如果输入:
39331 3 
尽管有3个3,但不能被19整除,也不满足条件,应输出NO。 



```python
# 读入输入的 m 和 k
m, k = map(int, input().split())

# 判断 m 能否被 19 整除
if m % 19 != 0:
    print("NO")
else:
    # 判断 m 中 3 的个数是否为 k
    count = 0
    while m > 0:
        if m % 10 == 3:
            count += 1
        m //= 10
    if count == k:
        print("YES")
    else:
        print("NO")


在这段代码中,我们先读入输入的 m 和 k,然后判断 m 能否被 19 整除。如果不能,直接输出 NO。否则,我们再判断 m 中 3 的个数是否为 k,如果是,输出 YES,否则输出 NO。

例如,对于输入的 m=43833 和 k=3,程序会先输出 YES。对于输入的 m=39331 和 k=3,程序会输出 NO。
我们来看一下这段代码的工作流程:

1.读入输入的 m 和 k:我们使用 map(int, input().split()) 函数将输入的字符串分割成两个数字,然后将这两个数字赋值给 m 和 k 变量。

2。判断 m 能否被 19 整除:我们使用 if 语句来判断 m % 19 是否为 0,如果是,就进入下一步;如果不是,就输出 NO 并结束程序。

3。判断 m 中 3 的个数是否为 k:我们使用 while 循环来不断地除以 10,并判断最后一位是否为 3。如果是,就将 count 变量加 1,否则就继续循环。当 m 变为 0 时,就退出循环。然后,我们再使用 if 语句判断 count 变量是否等于 k,如果是,就输出 YES,否则输出 NO
m,k=input().split()
if int(m)%19==0 and m.count('3')==int(k):
    print('YES')
else:
    print('NO')

一、用map()函数实现“打包”输入
二、用str(m).count('3')统计整数m中的3的个数
三、用取余运算符%判定m被19整除。


对您有帮助,请点击我的回答左下角
“采纳该答案”

#!/sur/bin/nve 
# coding: utf-8 

s = '1<m<100000, 1<k<5'
m, k = map(int, input(f"\n{s:~^50}\n\n{'输入两个整数m、k(如43833 3):'}").strip().split())
if m%19==0 and str(m).count('3')==k:
    print(f"{' Yes ':~^50}")
else:
    print(f"{' No ':~^50}")

代码运行效果截屏

img

img


对您有帮助,请点击左边
“采纳该答案”