题解 | #爬楼梯#简洁移动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];
    }
}
全部评论

相关推荐

10-21 23:48
蚌埠坦克学院
csgq:可能没hc了 昨天一面完秒挂
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务