常胜将军
来源:互联网 发布:suse linux samba 编辑:程序博客网 时间:2024/06/01 18:25
现有21根火柴,两人轮流取,每人每次可以取走1至4根,不可多取,也不能不取,谁取最后一楰火柴谁输。请编写一个程序进行人机对弈,要求人先取,计算机后取;计算机一方为“常胜将军”。
*问题分析与算法设计
在计算机后走的情况下,要想使计算机成为“常胜将军”,必须找出取 关键。根据本题的要求枷以总结出,后走一方取子的数量与对方刚才一步取子的数量之和等于,就可以保证最后一个子是留给先取子的那个人的。
据此分析进行算法设计就是很简单的工作,编程实现也十分容易。
*问题分析与算法设计
在计算机后走的情况下,要想使计算机成为“常胜将军”,必须找出取 关键。根据本题的要求枷以总结出,后走一方取子的数量与对方刚才一步取子的数量之和等于,就可以保证最后一个子是留给先取子的那个人的。
据此分析进行算法设计就是很简单的工作,编程实现也十分容易。
#include <stdio.h>int main(){ int a = 21, i; printf("Game begin:\n"); while (a > 0) { do{ printf("How many stick do you wish to take(1~%d)?", a > 4 ? 4 : a); scanf("%d", &i); }while (i > 4 || i < 1 || i > a); if (a - i > 0) { printf(" %d stick left in the pile.\n", a - i); } if ((a - i) <= 0) { printf(" You have taken the last stick.\n"); printf(" * * * You lose! \nGame Over.\n"); break; } else { printf(" Compute take %d stick.\n", 5 - i); } a -= 5; printf(" %d stick left in the pile.\n",a); } return 0;}
阅读全文
0 0
- 常胜将军
- 常胜将军
- 61-常胜将军
- 智力游戏(常胜将军)
- 【趣味编程】常胜将军
- C_逻辑题: 常胜将军
- 【每周一题】16、常胜将军
- (百例编程)88.常胜将军
- 常胜将军,Java,21根火柴
- 【经典趣味算法】常胜将军算法
- Hadoop:大数据解决方案的常胜将军
- C趣味编程]常胜将军(取火柴游戏)
- 21点 21根火柴 常胜将军 简单游戏
- C趣味编程]常胜将军(取火柴游戏) 思路
- 谷歌经验:挑起“产品内斗”成为常胜将军
- 什么使我成为网商“战役”的常胜将军?
- JAVAWEB开发之redis学习(九)——redis主从复制入门及原理
- Android 水平方向跑马灯例子
- list集合与queue集合
- Android animation(一.alpha)
- UOJ 149 子串
- 常胜将军
- emwin学习之路:关于menu小工具的使用
- list.toString()结果
- 递归问题
- ThinkPHP3.2 --- 无法加载数据库驱动: Think\Db\Driver\
- C语言 string及memcpy,memmove函数的模拟实现
- Disruptor框架学习(为什么快)
- UVA 1589 象棋
- java中打印对象和toString()重写