算法问题

wenw 2002-09-27 03:21:12
在大航海四中有一个这样的游戏,在桌上有一堆硬币,数量为N,参与游戏的人轮流取硬币,最多一次取5个,最少一次取1个,谁取到最后一个就算赢,请设计一个算法,保证电脑在有可能的情况下总取到最后一个硬币。
...全文
33 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hsl27 2002-09-27
  • 打赏
  • 举报
回复
private function getNum(N as long)as long 'N 为总数
getnum = N mod 6 ’留5+1的整数倍给对方
if getnum = 0 then ’如果条件成立,电脑不管取多少,结果一样,所以
getnum = rnd(4)+1 '电脑应当取一个1-5之间的随机数 (1加上一个 0 — 4 的随机数)
ebdif
end function
danielinbiti 2002-09-27
  • 打赏
  • 举报
回复
电脑能做的好像也只有保证剩下的是6的倍数
其它条件太不确定了
sindyzhou 2002-09-27
  • 打赏
  • 举报
回复
每次盡量保証剩下6的倍數個硬币,所以
private function getNum(sum as long)as integer
getnum = sum mod 6
if getnum = 0 then
getnum = 1
end function
sindyzhou 2002-09-27
  • 打赏
  • 举报
回复
肯定用遞歸

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧