import random   #引入随机数
money,number=map(int,input("输入红包金额和个数,以逗号隔开:").split(","))  #题目要求逗号隔开
def redpocket(money,number):    #定义函数
    over=[]    #创建数组,存入每个红包金额
    n=number   #红包个数
    k=money    #记录总金额,最后一个红包用以减法
    if money>0 and money<=200:      #红包金额在0-200
        for i in range(number):
            if n>1:        #留下最后一个红包
                n-=1
                m=random.uniform(0.01,money)  #随机红包金额
                money=money-m       #减去上一个红包金额
                m=round(m,2)       #保留两位小数
                over.append(m)     #存入数组
            elif n>0:        #最后一个红包
                n-=1
                j=0
                for i in range(len(over)):
                    j+=over[i]          #计算除最后一个红包的总金额
                    j=round(j,2)
                m=k-j         #计算最后一个红包金额
                m=round(m,2)
                over.append(m)
        return over
    else:
        print("请输入一个大于0小于200的数")
a=redpocket(money,number)
print(a)

初学者,暂时只会简单算法,当红包个数过多时,此代码可能出现错误,求大佬帮帮

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐