为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕雪9496982 2018-02-06 23:50:35
是这样的  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



思路:

  1. 先输入一个数

  2. 判断这个数是否大于20,  如果不大于就在 [0,6,9,15,20]里面找,如果大于,就将他除以20的结果+1,从而限定range的取值范围.

  3. 三层嵌套循环,将所有的计算结果都丢到一个列表里.

  4. 用 in 来判断.


查看完整回答
反对 回复 2018-02-09
?
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))


查看完整回答
反对 回复 2018-02-09
?
昵称已被禁用

TA贡献21条经验 获得超6个赞

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

查看完整回答
反对 回复 2018-02-08
?
时间对岸

TA贡献5条经验 获得超13个赞

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

查看完整回答
反对 回复 2018-02-07
?
不知乎

TA贡献6条经验 获得超2个赞

不是很理解你的意思,要是n是由 6 ,9,20 组成的 ,根据那个公式a,b,c都等于1不就行了

查看完整回答
反对 回复 2018-02-07
  • 慕雪9496982
    慕雪9496982
    函数输入一个n的值 由函数体判断这个n值是否是由 6, 9, 20组成的 6a+9b+20c=n 也就是这个公式 如果是的话那么就返回真 不是返回假
  • 5 回答
  • 0 关注
  • 1896 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信