牛妹的数字

对于n=1来说,以1结尾、以0结尾个数都是1,总和是2,下面过度到n=2:
对于所有以1结尾的数,后面都可以加上0(10),而对于0结尾的数,后面即可以加1也可以加0(01,00);所以 n位不含相邻1的个数和n-1位的不含相邻1的个数有关系啊。
n位中以1结尾的个数其实等于由n-1位中以0结尾个数(0结尾后面加个1);
n位中以0结尾的个数其实等于由n-1位中的以1结尾个数+以0结尾个数;

class Solution {
public:
    /**
     * 
     * @param n int整型 
     * @return long长整型
     */
    long long calculate(int n) {
        // write code here
        long long a = 1, b = 2, c = 3;
        for (int i = 3; i <= n; i ++) {
            a = c;
            c += b;
            b = a;
        }
        return c;
    }
};

这样写也挺好的

class Solution {
public:
    /**
     * 
     * @param n int整型 
     * @return long长整型
     */
    long long calculate(int n) {
        // write code here
        long long dp0 = 1, dp1 = 1;
        for (int i = 1; i < n; i++)
        {
            long long tmp = dp0;
            dp0 += dp1;
            dp1 = tmp;
        }
        return dp0+dp1;
    }
};
全部评论

相关推荐

不愿透露姓名的神秘牛友
10-29 21:31
大疆 硬件工程师 30.0k*15.0
快要三方开始纠结offer的到期男大:dji和影石我理解开奖了,华为你这个15级是怎么问出来的
点赞 评论 收藏
分享
牛客717484937号:双飞硕没实习挺要命的
点赞 评论 收藏
分享
有个问题,现在大家都在劝退客户端,客户端岗位也很稀缺,那为什么不去呢,就算干一两年被裁了也可以社招进去吧,人不是同样很少,社招岗位也户会急招人的吧😋😋😋
Runquicky:在前三年客户端还好,主要是因为大厂都在扩张状态。这两年已经不建议了,大厂都只剩维护的需求了,没新功能,自然也没那么多需求。新人进去一两年被裁会怎样很难说了。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务