首页 leetcode

题目描述

已有方法 rand7 可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10 生成 1 到 10 范围内的均匀随机整数。

不要使用系统的 Math.random() 方法。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/implement-rand10-using-rand7
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

输入样例:

1

输出样例:

[7]

ac代码

/** 
 * The rand7() API is already defined for you.
 * @return a random integer in the range 1 to 7
 * fn rand7() -> i32;
 */

impl Solution {
    pub fn rand10() -> i32 {
        let mut a = rand7();
        let mut b = rand7();
        while a == 7 {
            a = rand7();
        }
        while b > 5 {
            b = rand7();
        }
        if a & 1 == 0 {
            return b + 0;
        }
        else {
            return b + 5;
        }
    }
}

就是将第一个数变成小于5的,第二个数判断奇数偶数,加零加五,最后产生一个随机为10的数




文章评论