题解 | #爬楼梯#简洁移动C++版

爬楼梯

http://www.nowcoder.com/practice/b178fcef3ed4448c99d7c0297312212d

简洁易懂C++版
因为会溢出,所以定义一个vector数组,当快溢出时新建一个数,即大于10的10次方,表示乘上10的10次方的数据,其代码如下,非常简洁!!!

#include<iostream>
#include<vector>

using namespace std;

int main()
{
    int n;
    while(cin>>n)
    {
        if (n==1)
        {
            cout<<1<<endl;
            continue;
        }
        vector<int> a,b,c;
        a.push_back(1);
        b.push_back(1);
        c.push_back(0);
        for(int i=1;i<n;++i)
        {
            int temp=0;
            for(int i=0;i<a.size();++i)
            {
                c[i]=(a[i]+b[i])%1000000000+temp;
                temp=(a[i]+b[i])/1000000000;
            }
            if(temp>0)
                c.push_back(temp);
            a=b;
            b=c;
        }
        for(int i=c.size()-1;i>=0;--i)
            cout<<c[i];
    }
}
全部评论

相关推荐

字节 飞书绩效团队 (n+2) * 15 + 1k * 12 + 1w
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
10-12 10:48
已编辑
秋招之苟:邻居家老哥19届双2硕大厂开发offer拿遍了,前几天向他请教秋招,他给我看他当年的简历,0实习实验室项目技术栈跟开发基本不沾边😂,我跟他说这个放在现在中厂简历都过不了
点赞 评论 收藏
分享
11-15 19:28
已编辑
蚌埠坦克学院 硬件开发
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务