题目:
一共100个球,两人轮流拿,每人每次最多拿5个,最后一个拿的人赢;如果我先拿,怎么拿一定会赢?
#include <stdio.h> #include <stdlib.h> #include <time.h> int sc(); int main() { // 设置随机数生成器的种子为当前时间 srand(time(NULL)); int bal = 100; // 初始化球数量 int count = 1; // 计数 while(1){ printf("======================【%d】======================\n", count++); int choose; // 玩家选择拿走的球 //TODO int rm = rand() % 5 + 1; // 模拟人机拿走球的数量 if(bal<=5){ // 小于最大拿走量则直接拿走全部 //TODO rm = bal; } bal -= rm; printf("【人机】选择拿走【%d】个球,当前剩余【%d】个球\n", rm, bal); if(bal <=0){ // 球被拿光后获胜 //TODO printf("【人机】获胜!"); break; } printf("【玩家】请选择拿球数量:"); choose = sc(); bal -= choose; printf("【玩家】选择拿走【%d】个球,当前剩余【%d】个球\n",choose, bal); if(bal <=0){ // 球被拿光后获胜 //TODO printf("【玩家】获胜!"); break; } printf("=================================================\n\n"); } return 0; } int sc(){ // 递归校验玩家拿走数量 int choose; scanf("%d", &choose); if(choose>5){ //TODO printf("请输入1-5之间的数字:"); choose = sc(); } return choose; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)