年NOC大赛Python初中组决赛真题——拍卖,,
年NOC大赛Python初中组决赛真题——拍卖,,
编程实现: 为了分配一件物品,两个小伙伴决定进行一场拍卖,为了避免价格过高或者被一口价买走,定下 以下规则:
1、起拍价必须小于100;
2、谁先出价100谁获得这件物品;
3、加价为1到5之间的整数; 现在由你先出价,假设对方能按最优策略加价,输入你报出的起拍价,请根据这个价格判断最后 是否能获得这件物品,如果能获得,输出True,否则输出False。
例:你出价95,那么对方加价5,你一定不能获得这件物品,输出False;你出价94,那么对方不 管怎么加价,你都能直接加价到100,直接获得这件物品,输出True。
输入描述
输入一个正整数n,表示你出的起拍价(1≤n<100)。
输出描述
输出是否能获得这件物品,如果能获得,输出True,否则输出False。
输入样例
94
输出样例
True
要点:
每次可以加价为1到5之间的整数,谁先数到100谁赢。关键在于通过控制自己数的数字,使得每一轮结束后,剩余的差价是6的倍数。这样,无论对方如何数,你都可以通过调整自己数的数字,最终加到100
具体来说,如果想赢,可以采取以下策略:
起拍价与100的差额是6的倍数,接下来对方出价,这样你可以根据对方数的数字来调整自己数的数字。
如果对方加1元,你就加5元;如果对方加5元,你就加1元。这样可以确保每一轮你们两个人一共加6元。
通过这种策略,你可以控制拍卖进程,使得在每一轮结束后,剩余的差额都是6的倍数。这样,在拍卖结束时你总能加到100。
所以这个拍卖的最终结果只跟起拍价有关,如果起拍价与100的差额是6的倍数可以获得,如果不是将不能获得
参考答案:
n=int(input('输入起拍价:'))if (100-n)%6==0: print('True')else: print('False')
本站内容未经许可,禁止任何网站及个人进行转载。
评论关闭