算法题之日常刷题 0002

题目1:

实现2:

def funOne(n):
    ou = 0xaaaaaaaa & n
    ji = 0x55555555 & n
    print(bin(n), bin(ou), bin(ji))
    print((ou>>1)^(ji<<1))
    

题目2:

实现2:

def funThree(n):
    res = 0
    count = 0
    while n != 0:
        if n >= 1:
            res = res + 1 / (10**count)
            n -= 1
        else:
            n = n * 2
        count += 1
    print(res)

if __name__ == "__main__":
    funThree(0.3)

题目3:

这道题目应该是有点问题 这里的k应该是3的整数次倍

 实现3:

def fun():
    ls = [1,1,1,4,4,4,5,5,5,13,2,2,2,9,9,9]
    res = []
    maxLen = 0
    for i in range(len(ls)):
        s = transform(ls[i])
        if len(s) > maxLen:
            maxLen = len(s)
        res.append(s)

    for i in range(len(res)):
        if len(res[i]) < maxLen:
            for j in range(maxLen - len(res[i])):
                res[i].insert(0, 0)
    myRes = []
    for i in range(len(res[0])):
        mySum = 0
        for j in range(len(res)):
            mySum = (mySum + res[j][i]) % 3
        myRes.append(mySum)
    result = 0
    myRes.reverse()
    print(myRes)
    for i in range(len(myRes)):
        result += myRes[i] * (3 **(i))        
    print("最后结果为:", result)

题目4:

求n的阶乘

实现4:

def f(n):
    if n == 1:
        return 1
    return n*f(n-1)

if __name__ == "__main__":
    print(f(4))

题目5:

打印[ i , j ] 左闭右闭

实现5:

def fOne(i, j):
    if i > j:
        return
    print(i)
    fOne(i+1,j)
    
if __name__ == "__main__":
    fOne(11, 10)
   

题目6:

数组求和

实现6:

def fTwo(ls):
    if len(ls) == 0:
        return 0
    return ls[0]+fTwo(ls[1:])
if __name__ == "__main__":
    print(fTwo(list(range(1, 101))))

题目7:

字符串翻转 递归的两种方式 大同小异

实现7:

def fThree(string, left, right):
    if left > right:
        return ""
    if left == right:
        return string[left]
    return string[right] + fThree(string, left+1, right-1) + string[left]
def fFour(string, end):
    if(end == 0):
        return ""+string[end]
    return string[end]+fFour(string, end-1)
    
if __name__ == "__main__":
    print(fThree("abcde", 0, 4))
    print(fFour("abcde", 4))

猜你喜欢

转载自blog.csdn.net/qq_50709355/article/details/123323516