Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- #define NMax 10000
- typedef int Huge[NMax+3];
- void AtribValue(Huge H, unsigned long X) {
- H[0] = 0;
- while (X) {
- ++H[0];
- H[H[0]] = X % 10;
- X /= 10;
- }
- }
- void CopyHuge(Huge A,Huge B) /// A <- B
- {
- for(int i=0;i<=B[0];++i)
- A[i]=B[i];
- }
- void Add(Huge A, Huge B) /// A <- A+B
- { int i,T=0;
- if (B[0]>A[0])
- { for (i=A[0]+1;i<=B[0];) A[i++]=0;
- A[0]=B[0];
- }
- else for (i=B[0]+1;i<=A[0];) B[i++]=0;
- for (i=1;i<=A[0];i++)
- { A[i]+=B[i]+T;
- T=A[i]/10;
- A[i]%=10;
- }
- if (T) A[++A[0]]=T;
- }
- void AfisezHuge(Huge A)
- {
- for(int i=A[0];i>0;--i)
- cout<<A[i];
- }
- int main()
- {
- int n;
- cin>>n;
- if(n==1||n==2)
- {
- cout<<1;
- return 0;
- }
- Huge F1,F2,F;
- AtribValue(F1,1ULL);
- AtribValue(F2,1ULL);
- for(int i=3;i<=n;++i)
- CopyHuge(F,F1),Add(F,F2),CopyHuge(F1,F2),CopyHuge(F2,F);
- AfisezHuge(F);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement