欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

测试开发阿里巴巴笔试题2020

程序员文章站 2022-05-18 18:09:41
测试开发阿里巴巴笔试题2020幸运数7幸运数7输入范围[r,l],输出该范围内幸运数的个数幸运数解释:数657,相邻位相减绝对值组成12,12相邻位相减绝对值组成1,不为7 故657不是幸运数数18 相邻位相减绝对值组成7,故18为幸运数def fun(l, r): que = [] sum = 0 for num in range(l,r+1): while num: que.append(num%10)...

给定目标数公约数,找到三个数相加等于目标数(自己写的,没有上传测试代码)

问题描述:

给定目标数n公约数k,找到三个数相加等于目标数,如果有多种情况只需输出其中一种,如果找不到这样的三个数就输出-1
如输入 n:6,k:1 则输出1,2,3(1,2,3的公约数为1)
输入 n:12,k:4 则输出-1
输入n:38,k:2 则输出2,4,32(2,4,32的公约数为2)

def fun(n,k):
    que = []
    for i in range(1,n):
        if i*k<n:
            que.append(i*k)
    size = len(que)
    if size<3:
        return -1
    for i in range(size-2):
        for j in range(i+1,size-1):
            if que[i]+que[j]>=n:
                return -1
            for g in range(j+1,size):
                if que[i]+que[j]+que[g]==n:
                    return que[i],que[j],que[g]
                if que[i]+que[j]+que[g]>n:
                    break
result = fun(38,2)
print(result)

幸运数7(自己写的,没有上传测试代码)

问题描述:

输入范围[r,l],输出该范围内幸运数的个数
幸运数解释:
数657,相邻位相减绝对值组成12,12相邻位相减绝对值组成1,不为7 故657不是幸运数
数18 相邻位相减绝对值组成7,故18为幸运数

def fun(l, r):
    que = []
    sum = 0
    for num in range(l,r+1):
        while num:
            que.append(num%10)
            num = num//10
        while len(que) >= 2:
            size = len(que)
            for j in range(size - 1):
                que.append(abs(que[j + 1] - que[j]))
                que.pop(0)python
                if j+1 == size-1:
                    que.pop(0)

        if que.pop(0) == 7:
            sum += 1
    return sum

result = fun(l=1,r=10000)
print(result)

#注释
123%10 = 12.3
123/10=3
123//10=12
for i in range(2,5)
    print(i)
>> 2,3,4

本文地址:https://blog.csdn.net/qq_37261711/article/details/107474487

相关标签: 求职笔试 python