腾讯面试题:买200返100优惠券,实际上折扣是多少?

到商店里买200的商品返还100优惠券(可以在本商店代替现金)。请问实际上折扣是多少?

由于优惠券可以代替现金,所以可以使用200元优惠券买东西,然后还可以获得100元的优惠券。

典型错误回答 200/300 = 67%.

简要分析:(假设商家和你都不笨,每人求最大利益,商家想卖多商品,买主想少花钱,而你不可能买到刚好,故只能出现以下情况)用枚举清晰

设花销为x元,折扣为r。

当x<200时,无折扣,r=0;

当400>x>=200时,分两种情况,

1)当300>x>=200时,折扣r为200/x

2)当400>x>=300时,折扣r为(x-100)/x

当600>x>=400时,

1)当500>x>=400时,折扣为400/x

2)当600>x>=500时,(x-200)/x

...................................

所以

设m=x/200(求商),n=x%200(求余数)

当n<100时,折扣r为200m/x

当200>n>=100时,折扣r为(x-m*100)/x

故可编程实现,程序略。



你可能感兴趣的:(编程,面试,腾讯)