470.用Rand7()实现Rand10()
题解:我第一次做的时候是直接rand7() * rand7()%10+1,但是只对了8组数据,不知道为什么,改成
(rand7()+(rand7()-1) * 7)%10+1,就对了10组数据,后面直接根据两组相乘生成的结果值,剔除大于40的那部分数据,最后进行返回就行了。
class Solution extends SolBase {
public int rand10() {
int x=rand7();
int y=rand7();
return (x+(y-1)*7)%10+1;
}
}