def fun(num):
result = []
list1 =
i = len(list1)
while i > 0 and num > 0:
if num >= list1:
result.append(list1)
num -= list1
i -= 1
else:
i -= 1
print(' + '.join(str(i) for i in result))
{:5_91:}
def fun(num,list_2=[]):
list_1 =
if num not in list_1:
list_1.append(num)
list_1.sort()
m = list_1
list_2.append(m)
return fun(num - list_1,list_2)
else:
list_2.append(num)
list_2.reverse()
print('+'.join(str(i) for i in list_2))
啊哈
def fun(num):
nums =
res = []
for j in range(8):
i = num & 0x01
num = num >> 1
if i == 1:
res.append(str(nums))
return ' + '.join(res)
1
学习
svdsv
def fun(num):
return "+".join(i for i,j in zip(['1','2','4','8','16','32','64','128'],bin(num)[-1:1:-1]) if int(j))
def fun(num):
return "+".join(i for i,j in zip(['1','2','4','8','16','32','64','128'],bin(num)[-1:1:-1]) if int(j))
学习
return'+'.join(s)什么意思啊?
def fun(num):
List=
Result=[]
for each in List:
if num>=each:
num-=each
Result.append(str(each))
return '+'.join(Result)
def funB(num):
#递归方法实现将10进制转为2进制
if num==0:
return ""
else:
if num%2==1:
return funB(num//2)+"1"
else:
return funB(num//2)+"0"
def fun(n):
factor=
prompt=""
#将2进制数转发成要求的输出格式
for each in zip(reversed(funB(n)),factor):
if each=='1':
if len(prompt)>0:
prompt=prompt+" + "+str(each)
else:
prompt=str(each)
return prompt
。。。
楼主是我偶像好厉害
应该要用递归,但是函数写出来有问题,先看看答案
递归实现:
list=
list1=[]
str1='+'
def fun(a):
for x in list:
if(x<a and x*2>a)or x==a:
b=a-x
list1.append(x)
break
if b!=0:
fun(b)
else:
print(str1.join(str(n)for n in list1))
{:5_90:}
[技术交流] Python:每日一题 92(答题领鱼币)