第2题
思路
从最高位开始依次给数据,本地运行时,样例通过了,但AC一直为0,,,
求解答
import sys
arr=[2,1,0,0,1,0,1,0,0]
a=2
b=3
ka=2
kb=3
lista=[]
listb=[]
value=[]
i=0
while kb>0 or ka>0:
if arr[i]>=2:
if ka>0 and kb>0:
lista.append(i)
listb.append(i)
ka-=1
kb-=1
count=arr[i]-2
elif ka>0 and kb==0:
lista.append(i)
ka-=1
count=arr[i]-1
elif ka==0 and kb>0:
lista.append(i)
ka-=1
count=arr[i]-1
elif arr[i]==1:
if ka>=kb:
lista.append(i)
ka-=1
else:
listb.append(i)
kb-=1
count=arr[i]-1
if count==0:
i+=1
else:
arr[i]=count
arr_a=0
for i in range(len(lista)):
arr_a=arr_a+lista[i]*(10**(len(lista)-i-1))
arr_b=0
for i in range(len(listb)):
arr_b=arr_b+listb[i]*(10**(len(listb)-i-1))
第3题
def f(n):
if n<=1:
return 1
else:
return n*f(n-1)
print(f(3))
lista=[31,18,19,1,25]
d=10
lista.sort()
count=0
for i in range(len(lista)-1):
temp=lista[i]
l=lista[i+1]
r=len(lista)-1
while l<r:
k=int((l+r)/2)
if (lista[k])-temp<d:
count=count+f(i-k+1)/2
i=k+1
else:
r=k
print(count/f(len(lista))/2)
写不出来了,,,求大佬解答