年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')

本站内容未经许可,禁止任何网站及个人进行转载。

   口袋儿题库-青少儿编程自测题库

评论关闭