C语言:甲乙轮流取硬币,每次最少1个,最多3个,甲先取,取走最后1个硬币者获胜

#include <stdio.h>
//n个硬币,甲(Rui)乙(Seven)两人轮流取硬币,每次最少取1个,最多取3个 。甲先取,取走最后1个硬币者获胜;
//甲乙都能做出最佳选择的情况下,输赢只与硬币数量n有关。编程任意n个硬币,如果甲赢输出"Rui",乙赢输出"Seven"
//每个人都想最后留下4个,自己就能赢;最优:甲拿x个,乙拿4-x,甲拿x个,始终甲和乙拿的数之和是4对于甲乙来说就是最优的 
//分析:1-3:甲先取,甲赢;;4个: 甲取1 2 3个分别余3 2 1,都是乙赢;5个:1 (余4)甲赢;6个:2(余4)甲赢;7个:3(余4)甲赢
main()
{
    int n;
    scanf("%d",&n);
    if(n%4==0) printf("Seven");
    else printf("Rui");


    getchar();
 }

 

posted @ 2023-01-04 20:28  myrj  阅读(179)  评论(0编辑  收藏  举报