A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Huylens 中级黑马   /  2015-5-6 12:04  /  1445 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

游戏的规则:有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整除。



6 个回复

倒序浏览
如果大家有更好的思路欢迎贴出来,这个思路的代码我会在下一个帖子中贴出来。
回复 使用道具 举报
怎么感觉是多线程的问题  
回复 使用道具 举报
ninjaes 发表于 2015-5-6 12:16
怎么感觉是多线程的问题

那具体的是什么思路呢?
回复 使用道具 举报
Huylens 发表于 2015-5-6 12:19
那具体的是什么思路呢?

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

为什么要随机卖票?假设数字A和数字B是给定,例如343和49,或者162和81。
回复 使用道具 举报
Huylens 发表于 2015-5-6 15:19
为什么要随机卖票?假设数字A和数字B是给定,例如343和49,或者162和81。

我想  两个人踩气球是随机的  你并不知道 你会踩到哪一个   所以 就用了 你不知道 你卖的票号 是哪一个一样  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马