我正在研究按星级评分的算法。一星级价格等于一天的价格。问题是如何计算特定天数的星级价格。
购买明星的算法是: (星数)*(天)*价格(比方说1美元)。
在开始的帖子中有0星和0天。除了零值之外,帖子的所有者可以在任何天数内购买任意数量的星星。业主可以无限次购买。星星和日子总是总结。
示例: 如果所有者购买1星20天,价格为:1 * 20 * 1 $ = 20 $ 如果拥有者希望增加星数,到20,他需要购买20颗星,持续1天。所以它变成这样:20 * 1 * 1 $ = 20 $ 现在总共有21天和21星。
问题: 如果用户像示例中那样购买两次,他将为21星和21天共支付40美元。如果用户购买单买,他将支付21 * 21 * 1 $ = 441 $
我们需要做到这样,无论用户购买星星还是几天,如果他会以单次购买的方式购买所有东西,那么总和将会是相同的。
解决方案: 要检查用户已经拥有多少星级,并在下次购买时添加hes。例如: 首次购买:20 * 1 * 1 $ = 20 $ 第二次购买:1 + 20(首次购买)* 20 * 1 $ = 420 $
所以总的来说,我有21个星,21天为420 $ + 20 $ = 440 $,如果我会买单买,那将是421 $。