题解 | #用rand5()实现rand7()#

用rand5()实现rand7()

http://www.nowcoder.com/practice/581fb9be10d647e7bb179234b42f3f5f

import java.util.*;
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * rand5() is defined
     * @return a random integer in the range 1 to 7
     */
    
    public int rand5() {
        return 1 + (int) (Math.random() * 5);
    }

    public int rand7() {
        // write code here
        int ans = 0;
        do {
            ans = (rand01() << 2) + (rand01() << 1) + rand01();
        } while (ans == 7);
        return ans + 1;
    }

    public int rand01() {
        int tmpValue = 0;
        do {
            tmpValue = rand5();
        } while (tmpValue == 5);
        return tmpValue % 2;
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-10 13:54
点赞 评论 收藏
分享
05-14 20:34
门头沟学院 Java
窝补药贝八股:管他们,乱说,反正又不去,直接说680
点赞 评论 收藏
分享
06-12 16:00
天津大学 Java
牛客30236098...:腾讯坏事做尽,终面挂是最破防的 上次被挂了后我连简历都不刷了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务