是这样的 6a+9b+20c=n 这个公式 现在要求写一个函数 传入n 测试n是否是由 6 ,9,20 组成的如果是的话就返回 True 不然返回False (其中a,b,c可以为任意正整数值包括0)这个函数怎么实现啊我确实是想不出来了 求大佬不吝赐教!!
5 回答
XO鸡丝
TA贡献26条经验 获得超7个赞
简单测试了一下. 6*1+9*2+20*0 = 24
返回为True
在输入一个25
返回为False
思路:
先输入一个数
判断这个数是否大于20, 如果不大于就在 [0,6,9,15,20]里面找,如果大于,就将他除以20的结果+1,从而限定range的取值范围.
三层嵌套循环,将所有的计算结果都丢到一个列表里.
用 in 来判断.
XO鸡丝
TA贡献26条经验 获得超7个赞
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))
昵称已被禁用
TA贡献21条经验 获得超6个赞
我觉的是用三层for循环嵌套 将三个变量A B C一次从0开始每次加一 而且而且还要求每次的值 最后用输入的N 去和这个循环的值作比较 有相同的就返回true 没有的话就一直循环 循环结束还没有相同的就返回false 大概这个思路 不过这个题应该有个上限吧 例如N在1000以内什么的 否则这是要用天河一号来算啊
添加回答
举报
0/150
提交
取消