黑马程序员技术交流社区

标题: 关于踩气球游戏问题的思路 [打印本页]

作者: Huylens    时间: 2015-5-6 12:04
标题: 关于踩气球游戏问题的思路
游戏的规则:有100个气球,从1到100被标上数字。限定时间,两个人开始踩气球,时间到后,将自己所踩到的气球上所标示的数字相乘后得到的结果报出来,所得到的结果数字大者为胜。但是数字小者可以质疑,即如果数字大者所报的结果不可能出现,则质疑成功,数字小者为胜,否则质疑失败,依旧数字大者为胜。例如:343和49,胜者是49;162和81胜者为162
参考思路:
首先如果结果数字A和数字B一定是在(1,10000)之间,否则不可能出现;
如果数字A和数字B中有在【1,100】范围中,则不需要分解,因为有对应数字的气球;
如果数字A和数字B中有不在【1,100】范围中的,则需要因数分解。
这里的因数分解是要分解成1到100中的数字,数字不一定是质数。在做这道题目的时候如果我们按照惯性思维,从最小的2开始分解,但是这样很难行得通,但是我们如果从100开始分解,将100作为因数分解的因数起点,然后逐渐将这个因数变小,使之能够被数字A或数字B整除。




作者: Huylens    时间: 2015-5-6 12:06
如果大家有更好的思路欢迎贴出来,这个思路的代码我会在下一个帖子中贴出来。
作者: ninjaes    时间: 2015-5-6 12:16
怎么感觉是多线程的问题  
作者: Huylens    时间: 2015-5-6 12:19
ninjaes 发表于 2015-5-6 12:16
怎么感觉是多线程的问题

那具体的是什么思路呢?
作者: ninjaes    时间: 2015-5-6 12:28
Huylens 发表于 2015-5-6 12:19
那具体的是什么思路呢?

首先初始化100个气球,类似毕老师卖票例子,只不过我们需要对卖票的数据在进行相乘,比较大小就可以,只不过,我不知道在AB两个线程里该怎么随机卖票
作者: Huylens    时间: 2015-5-6 15:19
ninjaes 发表于 2015-5-6 12:28
首先初始化100个气球,类似毕老师卖票例子,只不过我们需要对卖票的数据在进行相乘,比较大小就可以,只 ...

为什么要随机卖票?假设数字A和数字B是给定,例如343和49,或者162和81。
作者: ninjaes    时间: 2015-5-6 17:00
Huylens 发表于 2015-5-6 15:19
为什么要随机卖票?假设数字A和数字B是给定,例如343和49,或者162和81。

我想  两个人踩气球是随机的  你并不知道 你会踩到哪一个   所以 就用了 你不知道 你卖的票号 是哪一个一样  




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2