是這樣的??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
提交
取消