📜  Python |在百分比的连续折扣中找到同等折扣

📅  最后修改于: 2021-05-13 21:42:37             🧑  作者: Mango

您会连续获得n个百分比的折扣。您的任务是找到百分比相等的折扣。输入将包含一个列表,其中列表的每个元素都将以百分比折扣(正负号)折扣。

例子:

Input :  a = [-10, -35, -60, -75]
Output :  -94.14

Input :  a = [-5, -20, -10.-23]
Output :  -49.08

成功更改= A + B +(A * B)/ 100
这个公式如何运作?
令x为初始值。 A%更改后,x的值变为(x + x * A / 100)。在连续的B%变化之后,x的值变为(x + x * A / 100)+(x + x * A / 100)* B / 100。因此,x的值的增量为x *(A + B + A * B / 100)/ 100。就百分比而言,我们可以说该值增加了(A + B + A * B / 100)%

方法:

  • 只需在arr [0]和arr [1]之间应用连续的更改公式,然后将结果存储在结果变量中即可。
  • 现在,使用上述公式计算result和arr [2]之间的连续变化,并将结果存储在result变量中,依此类推。

代码: Python程序,用于以百分比的形式找到连续折扣中的等价折扣。

# Function to find the equivalent discount in 
# successive discounts in percentages
def equivalentdis(a):
    if(len(a)== 1):
        return(a[0])
    else:
        # succesive change from two = a[0] + a[1]+ (a[0]*a[1])/100
        change =(a[0] + a[1]+ (a[0]*a[1])/100)
        for i in range(2, len(a)): 
            # iterating a[0] + a[1]+ (a[0]*a[1])/100 
            # len(a)-2 times
            change = (change + a[i]+(change * a[i]) / 100)
        return change; 
# Driver code
print(equivalentdis([-10, -20, -30, -40]))
   

输出 :

-69.75999999999999