贝壳找房算法岗-第1题:KB、第3题:采木
第一题:KB
不等式两边同除以n!,可以得出1+1/2+1/3+...+1/n>K
给定K的值,求解满足不等式的最小的n的值,并输出。
代码如下:
#!/bin/python # -*- coding: utf8 -*- # 请完成下面这个函数,实现题目要求的功能 # 当然,你也可以不按照下面这个模板来作答,完全按照自己的想法来 ^-^ # ******************************开始写代码****************************** def GetResult(K): n = 2 total = 1 while True: total += 1 / float(n) if K < total: break n += 1 return n # ******************************结束写代码****************************** _K = int(input()) res = GetResult(_K) print (res)
第三题:采木
使用锯子和斧头砍树。
第一行输入树的棵数n,
然后输入n行,每行分别输入三个数,分别代表用锯砍该棵树的时间和用斧砍该棵树的时间以及换工具所需时间。
已知现在手里拿着斧头,求依次砍n棵树所需的最少时间。
题目给定案例:
输入:
3
20 40 20
10 4 25
90 100 5
输出:139
大佬帮看下代码呗!
代码:
n = int(input()) a = [] b = [] c = [] for i in range(n): A, B, C = map(int, input().split()) a.append(A) b.append(B) c.append(C) fa = a[0]+c[0] fb = b[0] for j in range(1,n): tmp = fa fa = min(fa+a[j],fb+a[j]+c[j]) fb = min(fb+b[j],tmp+c[j]+b[j]) print(min(fa,fb))