求助......
3、糖果归谁candycandycandy.pas/.pas/cpp【问题描述】Alice和Bees两兄妹(以下简称两兄妹(以下简称A和B)正在看颁奖晚会的直播。突然一包...
3、糖果归谁
candy candycandy.pas/ .pas/cpp
【问题描述】
Alice 和 Bees两兄妹(以下简称 两兄妹(以下简称 A和 B)正在看颁奖晚会的直播。突然一包糖果 )正在看颁奖晚会的直播。突然一包糖果 从烟囱掉到了房子里,然后窗外一辆鹿车闪而过。两两兄妹很是诧异今天不圣诞节 啊,怎么圣诞老人也上班? B说可能圣诞老人觉得每年只上一天班太无聊了, 说可能圣诞老人觉得每年只上一天班太无聊了, A也同意。 接下来两兄妹的注意力同时集中到了这包糖果上。他们都不平分,想自己独 自占有。
所以两人决定通过游戏来谁能独享这包糖这包糖果里面总共 K个( 3< = K < 2^31 ) 3< = K < 2^31 )3< = K < 2^31 ),B给出一个整数 L(1 < L K) ,2人轮 流取走 糖果,同一时间某人能1至 L个糖果。 取走最后一的为胜者个糖果。 取走最后一的为胜者个糖果。 取走最后一的为胜者A先 拿, B为了确保能赢她必须思考一下,慎重给出 L。同学们帮一下 B,想一个最小的 L能让 B赢。
【输入】 输入文件 candy.in 。输入一行只包含个整数 K。
【输出】 输出文件 candy.out。输出一行,即对应的答案 输出一行,即对应的答案 L。要求保证 B必胜。假如有多个 必胜。假如有多个 答案,输出最小的 L。如果不存在保证能必胜的 。如果不存在保证能必胜的 L,则输出 0。
【输入出样例 1】
candy .in
candy .out
3
2
【数据样例解释】 例如, 如果只有 3个糖果 ,B把 L定为 2,有必胜把握。事实上,如 ,有必胜把握。事实上如 ,有必胜把握。事实上如 ,有必胜把握。事实上如 ,有必胜把握。事实上如 果 A取了 1个糖果 ,那么 B可以取剩下的 2个糖果 ,B胜。如果 A取了 2个糖果 ,那 么 B取 1个,也是 B胜。 【限制】 %60%60 的数据: K<=50 K<=50K<=50 %100%100 的数据: K< 2^31 K< 2^31
pascal语言 展开
candy candycandy.pas/ .pas/cpp
【问题描述】
Alice 和 Bees两兄妹(以下简称 两兄妹(以下简称 A和 B)正在看颁奖晚会的直播。突然一包糖果 )正在看颁奖晚会的直播。突然一包糖果 从烟囱掉到了房子里,然后窗外一辆鹿车闪而过。两两兄妹很是诧异今天不圣诞节 啊,怎么圣诞老人也上班? B说可能圣诞老人觉得每年只上一天班太无聊了, 说可能圣诞老人觉得每年只上一天班太无聊了, A也同意。 接下来两兄妹的注意力同时集中到了这包糖果上。他们都不平分,想自己独 自占有。
所以两人决定通过游戏来谁能独享这包糖这包糖果里面总共 K个( 3< = K < 2^31 ) 3< = K < 2^31 )3< = K < 2^31 ),B给出一个整数 L(1 < L K) ,2人轮 流取走 糖果,同一时间某人能1至 L个糖果。 取走最后一的为胜者个糖果。 取走最后一的为胜者个糖果。 取走最后一的为胜者A先 拿, B为了确保能赢她必须思考一下,慎重给出 L。同学们帮一下 B,想一个最小的 L能让 B赢。
【输入】 输入文件 candy.in 。输入一行只包含个整数 K。
【输出】 输出文件 candy.out。输出一行,即对应的答案 输出一行,即对应的答案 L。要求保证 B必胜。假如有多个 必胜。假如有多个 答案,输出最小的 L。如果不存在保证能必胜的 。如果不存在保证能必胜的 L,则输出 0。
【输入出样例 1】
candy .in
candy .out
3
2
【数据样例解释】 例如, 如果只有 3个糖果 ,B把 L定为 2,有必胜把握。事实上,如 ,有必胜把握。事实上如 ,有必胜把握。事实上如 ,有必胜把握。事实上如 ,有必胜把握。事实上如 果 A取了 1个糖果 ,那么 B可以取剩下的 2个糖果 ,B胜。如果 A取了 2个糖果 ,那 么 B取 1个,也是 B胜。 【限制】 %60%60 的数据: K<=50 K<=50K<=50 %100%100 的数据: K< 2^31 K< 2^31
pascal语言 展开
1个回答
展开全部
先了解在什么情况下会出现必胜的情况,假设总为K,每次可取走L,那么在(L+1)*N=K的情况下,后手必胜,因为不管取N次,两人取走的数量相
加只要等于(L+1),那么最后肯定会出现只剩下(L+1)的情况,而这时候依然是先手取的状态,那么后手的就必胜了;反过来
(L+1)*N<>K,那么先手必胜。
明白了这一点,就可以开始解题了,必胜的前提条件一共两个,一是总数量K已知,二是先后手的顺序,因为K是要求输入的可以认为已知,先后手的话,上文中我没看懂B是不是必然后手。
解题思路有了,出结果就很简单,K除以(L+1)取余数,当余数为0时后手必胜,余数不为0先手必胜,套个步长1的循环上去让电脑去算吧……
你用的计算机语言我不熟,不能给出具体代码。
加只要等于(L+1),那么最后肯定会出现只剩下(L+1)的情况,而这时候依然是先手取的状态,那么后手的就必胜了;反过来
(L+1)*N<>K,那么先手必胜。
明白了这一点,就可以开始解题了,必胜的前提条件一共两个,一是总数量K已知,二是先后手的顺序,因为K是要求输入的可以认为已知,先后手的话,上文中我没看懂B是不是必然后手。
解题思路有了,出结果就很简单,K除以(L+1)取余数,当余数为0时后手必胜,余数不为0先手必胜,套个步长1的循环上去让电脑去算吧……
你用的计算机语言我不熟,不能给出具体代码。
追问
是pascal语言
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询