python练习题:共34个人租船,大船坐8人,小船5人,大船每条租40元,小船30元,怎样租船最省钱?

问题:一共34个人租船,大船坐8人,小船5人,大船每条租40元,小船30元,怎样租船最省钱?

增加点难度,把问题延伸为有b个人坐船的情况。

假设有x条大船,a条小船:

8*x+5*a=b

40*x+30*a=总费用

# -*- coding: utf-8 -*-
from pandas import Series,DataFrame
obj=Series([])
b=int(input('输入人数'))#坐船人数
def num():#大船的数量范围
    if b%8 != 0:
        return (b//8)+2
    else:
        return b//8
for x in range(0,num()):
    a = b-8*x
    if a < 0:
        obj[x] = 40*x
    elif a % 5 == 0:
        obj[x] = 40*x+6*a
    else:
        obj[x] = 40*x+30*(a//5+1)
print(obj)
obj2=obj.sort_values()
print ('当大船的数量是:',obj2.index[0],'条时','可以有最少的总费用是:',obj2.iloc[0],'元')
输入人数34
0    210
1    220
2    200
3    180
4    190
5    200
dtype: int64

当大船的数量是: 3 条时 可以有最少的总费用是: 180 元

输入人数100
0     600
1     610
2     590
3     600
4     580
5     560
6     570
7     550
8     560
9     540
10    520
11    530
12    510
13    520
dtype: int64
当大船的数量是: 12 条时 可以有最少的总费用是: 510 元

你可能感兴趣的:(python练习题:共34个人租船,大船坐8人,小船5人,大船每条租40元,小船30元,怎样租船最省钱?)