加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

hdoj 1041 Computer Tranformation

发布时间:2020-12-14 02:53:34 所属栏目:大数据 来源:网络整理
导读:找规律+大数加法,? a[i] = a[i-2] + a[i-1]; /*PROG: Computer TransformationLANG: C++11 */#include cstdio#include cmath#include cstring#include string#include cstdlib#include climits#include ctype.h#include queue#include stack#include vector#

找规律+大数加法,?

a[i] = a[i-2] + a[i-1];


/*
PROG: Computer Transformation
LANG: C++11 
*/
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>
#include <cstdlib>
#include <climits>
#include <ctype.h>
#include <queue>
#include <stack>
#include <vector>
#include <utility>
#include <deque>
#include <set>
#include <map>
#include <iostream>
#include <algorithm>
#include <fstream>

using namespace std;

#define mst(a,b) memset(a,b,sizeof(a));

typedef long long ll;
const int maxn = 200100;
const ll mod = 1000000007;

void pplus(vector<int> &a,vector<int> &b,vector<int> &ans){
    int m = a.size(); int n = b.size();
    int carry = 0;
    int d1,d2;
    for(int i = 0,j = 0; i < m || j < n|| carry; i++,j++){
        d1 = i < m ? a[i] : 0;
        d2 = j < n ? b[j] : 0;
        carry = d1 + d2 + carry;
        ans.push_back(carry%10);
        carry /= 10;
    }
}

vector<int> a[1001];

int main()
{
    a[1].push_back(0);
    a[2].push_back(1);
    a[3].push_back(1);
    for(int i = 4; i <= 1000; i++){
        vector<int> temp;
        pplus(a[i-2],a[i-2],temp);
        pplus(temp,a[i-1],a[i]);
    }
    int n;

    while(scanf("%d",&n) != EOF){
        for(int j = a[n].size()-1; j>= 0; j--){
            cout << a[n][j];
        }
        cout << endl;
    }
    return 0;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读