Day4 笔试总结

Day4 笔试总结

第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)

写不出来了,,,求大佬解答

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值