牛牛掷硬币

50分做法

由于n只有100,所以直接循环保留两位小数转换成字符串返回即可,注意精度问题,0.125如果直接输出是0.12,这里要补一下精度(比如+1e-9再输出)。时间复杂度o(n),空间复杂度o(1)。

100分做法

可以发现n>=9时概率保留两位只有0.00了,所以打表打出前9个的答案即可。如果不打表9以内的数可能会出现精度问题,出就出在n=4答案是0.125上,直接保留两位输出这个数你会发现输出的是0.12而不是0.13,所以先算小数再转化成字符串的做法请注意补精度。个人感觉数也不多,还是打表更加简单。时间复杂度o(1),空间复杂度o(1)。代码如下:

class Solution {
public:
    /**
     * 返回一个严格四舍五入保留两位小数的字符串
     * @param n int整型 n
     * @return string字符串
     */
    string Probability(int n) {
        // write code here
        string x[10];
        x[1]="1.00";
        x[2]="0.50";
        x[3]="0.25";
        x[4]="0.13";
        x[5]="0.06";
        x[6]="0.03";
        x[7]="0.02";
        x[8]="0.01";
        x[9]="0.00";
        if(n>9)n=9;
        return x[n];
    }
};
全部评论

相关推荐

06-17 21:57
门头沟学院 Java
白友:噗嗤,我发现有些人事就爱发这些,明明已读不回就行了,就是要恶心人
点赞 评论 收藏
分享
兄弟们,实习都是在接各种api,该怎么包装简历
仁者伍敌:感觉我自己做小项目也是各种api啊,我要怎么包装简历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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