Python程序:计算商店商品最终价格(含特殊折扣)
假设我们有一个名为prices的数组,其中prices[i]表示商店中第i件商品的价格。商店正在进行一项特别优惠活动:如果购买第i件商品,则将获得等值于prices[j]的折扣,其中j是最小索引,满足j > i且第j件商品的价格小于或等于第i件商品的价格(即prices[j] <= prices[i]),否则,将不会获得任何折扣。我们需要找到一个数组,其中第i个元素是考虑到特殊折扣后,我们将为商店的第i件商品支付的最终价格。
因此,如果输入类似于prices = [16,8,12,4,6],则输出将为[8, 4, 8, 4, 6],因为商品0的价格为16,所以我们将获得等值于prices[1]=8的折扣,然后最终价格将为16 - 8 = 8。对于商品1,price[1]为8,我们将获得等值于prices[3]=4的折扣,因此我们将支付的最终价格为8 - 4 = 4。对于价格为12的商品2,我们将获得与prices[3] = 4相同的折扣值,因此我们将支付的最终价格为12 - 4 = 8。对于商品3和4,我们将不会获得任何折扣。
为了解决这个问题,我们将遵循以下步骤:
对于从0到prices大小的范围内的i:
对于从i+1到prices大小的范围内的j:
如果prices[i] >= prices[j],则:
prices[i] := prices[i] - prices[j]
退出循环
否则:
j := j + 1
返回prices
示例(Python)
让我们看看下面的实现,以便更好地理解:
def solve(prices): for i in range(len(prices)): for j in range(i+1,len(prices)): if(prices[i]>=prices[j]): prices[i]-=prices[j] break else: j+=1 return prices prices = [16,8,12,4,6] print(solve(prices))
输入
[16,8,12,4,6]
输出
[8, 4, 8, 4, 6]
广告