巴什博弈

阅读: 评论:0

巴什博弈

巴什博弈

最少取件数 是1的时候   核心代码是  

1 //  共有 n 见 物品  一次最少取  一个 最多取 m 个
2 if(n%(m+1)==0)
3     printf("先取者输");

在代码中  可以看到   题目中 一共出现的  三个量  1 , n ,m            

 

当 最少取件数 不是 1的 情况下 怎么办呢   部分同学 应该就想到了  这种 代码 

1 //  共有 n 见 物品  一次最少取  p 个 最多取 q 个
2 if(n%(m+q)==0)
3     printf("先取者输");

然而 只是这样考虑的话 那么  思维就有点 僵硬了 

没有考虑到 其他的 必输 情况 

也就是  当 n%(p+q) 的时候   余数 可能是  大于 最小 可取数的   当 余数 大于最小可取数的时候  对手仍然可以让你 必输 ....说的不清楚   自己用  6  2  3  这三个 数字 检测一下吧

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int q,n,p;
 5     while(scanf("%d%d%d",&n,&p,&q)!=EOF)
 6     {
 7         if(n%(q+p)==0||n%(q+p)>p)
 8             printf("WINn");
 9         else
10             printf("LOSTn");
11     }
12     return 0;
13 }

 

转载于:.html

本文发布于:2024-02-05 05:48:31,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170725533763564.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23