题解 | #牛妹的蛋糕#

牛妹的蛋糕

https://www.nowcoder.com/practice/1f7280d9897d4305b2da6790fe131729

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可  
     * @param n int整型 只剩下一只蛋糕的时候是在第n天发生的.
     * @return int整型
     */
    public int cakeNumber (int n) {
        if (n<=1){ 
            return n;
        }
        int m=1;
        while (n>1){ 
            m=(m+1)*3/2;
            n-=1;
        }
        return m;
    }
}

简单数学逆推即可:

若n<=1, 则只需1天 或0天则吃完,故返回n。

若n>1, 设第n天剩余m块 则从最后一天剩1块开始倒退. 第n-1天是第n天(数量+1)*3/2.

该逆推回退到第1天 需要n-1步,故设检查条件为n>1, 即while loop run (n-1) times. 毕。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务