本题基于这样一个事实:(randX() - 1)*Y + randY() 可以等概率的生成[1, X * Y]范围的随机数
class Solution {
public:
int rand10() {
int res = (rand7() - 1) * 7 + rand7();
while(res > 40){
res = (rand7() - 1) * 7 + rand7();
}
return res % 10 + 1;
}
};