Advertisement
Farjana_akter

Untitled

Mar 11th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. string fib[1008]={""};
  4. string stringadd(string a,string b)
  5. {
  6. if(a.length()>b.length())
  7. swap(a,b);
  8. string ans="";
  9. int len1=a.length();
  10. int len2=b.length();
  11. reverse(a.begin(),a.end());
  12. reverse(b.begin(),b.end());
  13. int i,j,k,sum=0,carry=0;
  14. for(i=0;i<len1;i++)
  15. {
  16.  
  17. sum=((a[i]-'0')+(b[i]-'0'))+carry;
  18. ans.push_back((sum%10)+'0');
  19. carry=sum/10;
  20. }
  21. for(i=len1;i<len2;i++)
  22. {
  23.  
  24. sum=((b[i]-'0'))+carry;
  25. ans.push_back((sum%10)+'0');
  26. carry=sum/10;
  27. }
  28. if(carry)
  29. ans.push_back(carry+'0');
  30. reverse(ans.begin(),ans.end());
  31. return ans;
  32. }
  33. string fibo(int n)
  34. {
  35. if(n==0)
  36. return "1";
  37. if(n==1)
  38. return "2";
  39. if(fib[n]!="")
  40. return fib[n];
  41. return fib[n]=stringadd(fibo(n-1),fibo(n-2));
  42. }
  43. int main()
  44. {
  45. int n;
  46. while(cin>>n)
  47. {
  48. cout<<fibo(n)<<endl;
  49. }
  50. return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement