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; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |