我們經常看到商場打折,電商打折,買200送100元代金券,代金券只能下次用。如果我一定要算出打幾折,應該怎么算?
很多人第一反應是5折,因為花200元買了200元的商品,有返還100元,就相當於花了100元買了200元的商品。還有很多人第一反應是67折,因為如果下次再買100元的商品用代金券就可以了,就相當於是花200元買了300元的商品,當然是打67折。
但是上面說的僅僅是很多情況中的兩種。注意,代金券需要購買商品才能體現價值,如果某人拿了代金券而不再購買或者在代金券有效期內沒有購買,代金券的價值就沒有體現出來,也就相當於沒有打折了。把所有可能情況都考慮進來,不僅是寫代碼的基本要求,也是做工程,做財會,做投資,做教育,做管理等等大部分行業的要求。對於此計算打折問題,我們需要考慮的因素包括本次購買花了多少元,下次購買花了多少元。
我的思路是這樣的:(如有錯誤,歡迎拍磚)
假設本次購買x元,第二次購買y元。
若x<200,則不打折;
若x>=200,則需按第二次購買的數額來確定打折數。
若y<=100,這其中就包括了y=0的情況,即使用100元代金券購買了小於等於100元的商品,此時折扣為x/(x+y)。
若y>100,即使用代金券抵了100元,此時折扣為(x+y-100)/(x+y)。
當然還有可能第二次購買是還在繼續進行買200送100優惠活動,折扣這樣算還沒完。
這道題是我的一個面試題,寫這篇短文這是為了記錄自己曾經考慮問題不周,以告誡自己做事做人要嚴謹細致。