有一个问题怎么也想不出来了


是这样的 

 6a+9b+20c=n 这个公式 现在要求写一个函数 传入n


 测试n是否是由 6 ,9,20 组成的如果是的话就返回 True  不然返回False (其中a,b,c可以为任意正整数值包括0)

这个函数怎么实现啊

我确实是想不出来了 求大佬不吝赐教!!

慕雪9496982
浏览 1843回答 5
5回答

XO鸡丝

简单测试了一下.   6*1+9*2+20*0 = 24 返回为True在输入一个25返回为False思路:先输入一个数判断这个数是否大于20,  如果不大于就在 [0,6,9,15,20]里面找,如果大于,就将他除以20的结果+1,从而限定range的取值范围.三层嵌套循环,将所有的计算结果都丢到一个列表里.用 in 来判断.

XO鸡丝

n = int(input(">>")) def func(n): list = [] if n <= 20 : if n in [0,6,9,15,20]: return True else: max_range = int(n/20)+1 for a in range(max_range+1): for b in range(max_range+1): for c in range(max_range+1): p = 6*a+9*b+20*c list.append(p) print(list) if n in list: return True else: return False print(func(n))

昵称已被禁用

我觉的是用三层for循环嵌套  将三个变量A B C一次从0开始每次加一  而且而且还要求每次的值  最后用输入的N 去和这个循环的值作比较  有相同的就返回true  没有的话就一直循环  循环结束还没有相同的就返回false  大概这个思路  不过这个题应该有个上限吧  例如N在1000以内什么的 否则这是要用天河一号来算啊

时间对岸

啥叫由6,9,20组成?分别能整除还是n中包含这几个数字?

不知乎

不是很理解你的意思,要是n是由 6 ,9,20 组成的 ,根据那个公式a,b,c都等于1不就行了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python