测试开发阿里巴巴笔试题2020
程序员文章站
2023-04-03 18:47:28
测试开发阿里巴巴笔试题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)...
测试开发阿里巴巴笔试题2020
给定目标数公约数,找到三个数相加等于目标数(自己写的,没有上传测试代码)
问题描述:
给定目标数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
上一篇: 一行代码玩童年小游戏
下一篇: 贪心--分发糖果