首页 > 其他分享 >C语言:甲乙轮流取硬币,每次最少1个,最多3个,甲先取,取走最后1个硬币者获胜

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

时间:2023-01-04 20:33:29浏览次数:47  
标签:Seven Rui 硬币 轮流 甲乙 甲先取 C语言

#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();
 }

 

标签:Seven,Rui,硬币,轮流,甲乙,甲先取,C语言
From: https://www.cnblogs.com/xkdn/p/17025938.html

相关文章

  • 《C语言程序设计》1.5while(getchar()!=EOF)与xcode的适配问题
    最近在复习C语言,《C语言程序设计》1.5字符输入/输出部分涉及到如下代码:while(getchar()!=EOF)输入一段字符串并回车后发现无法跳出while循环。首先尝试用键盘输入EOF,......
  • C语言--常用进程间通信方式
    管道管道是一种队列型的数据结构,它的数据从一端输入,另一端输出。管道最常见应用就是连接两个进程的输入和输出,将一个进程的输入作为另一个进程的输出。shell中有专门的管......
  • C语言中使用ESL连接FreeSwitch
    前言之前在【FreeSwitch开发实践】在nodejs中用ESL连接FreeSwitch一文介绍了在NodeJS下使用ESL连接FreeSwitch,本文则对在C语言下使用ESL连接FreeSwitch作了一个系统介绍......
  • C语言--unistd.h
    在此随手记录一些unistd.h文件中的函数dup声明:intdup(intoldfd)功能:复制文件描述符,重定向输入输出返回值:成功返回当前系统可用的最小整数值,否则返回-1dup2声明:int......
  • C语言printf输出彩色字体
    使用格式:样式开始+被修饰字符串+样式结束样式开始:\033[+参数1+;+参数2+;+参数3+m参数1:代表背景色可选值和含义:字背景颜色范围:40-4940:黑41:深红42:绿43:黄......
  • C语言数据的存储
    前言之前写过一篇关于​​C语言内存管理​​的文章,对在C语言中使用内存中需要注意的一些问题和解决办法做了一些总结。实际上,内存终归是要存储数据的,这次对C语言中的数据存......
  • C语言 运算符优先级与结合性
    如果一个表达式中的两个操作数具有相同的优先级,那么它们的结合律(associativity)决定它们的组合方式是从左到右或是从右到左C语言运算符优先级及结合性如下图所示犯过......
  • C语言程序设计基础课程设计要求[广东东软学院]
    C语言程序设计基础课程设计要求[广东东软学院]广东东软学院程序设计基础课程设计要求层次:本科适用专业:2021级计算机类专业广东东软学院《程序设计基础课程设计》......
  • C语言-保留小数位,不需要四舍五入
     1需要输出为截取后2位小数的转换方法#include<stdio.h>intmain(){floatn=23.478;inta,b;a=(int)n;b=(int)((n-a)*100);......
  • C语言简易计算器的两种方法
    第一种方法  函数指针数组#include<stdio.h>intadd(intx,inty){returnx+y;}intsub(intx,inty){returnx-y;}intmul(intx,inty){returnx*y;}intd......