fork download
  1. #include <iostream>
  2. #include <string>
  3. #include <algorithm>
  4. #define ll long long
  5. using namespace std;
  6.  
  7. string ans[101];
  8.  
  9. string addStrings(string num1, string num2) {
  10.  
  11. while(num1.size()>num2.size())
  12. {
  13. num2='0'+num2;
  14. }
  15. while(num2.size()>num1.size())
  16. {
  17. num1='0'+num1;
  18. }
  19.  
  20. int n=num2.size();
  21. int res;
  22. string ans="";
  23. int carry=0;
  24. for(int i=n-1;i>=0;i--){
  25. res=((num1[i]-'0')+(num2[i]-'0')+carry)%10;
  26. carry=((num1[i]-'0')+(num2[i]-'0')+carry)/10;
  27. ans=ans+ to_string(res);
  28.  
  29. }
  30. if(carry==1){ ans=ans+to_string(1);}
  31. reverse(ans.begin(),ans.end());
  32. return ans;
  33. }
  34.  
  35. void solve()
  36. {
  37. int n;
  38. cin >> n;
  39. cout << ans[n] << endl;
  40. }
  41.  
  42. int main() {
  43. ios_base::sync_with_stdio(false);
  44. cin.tie(NULL);
  45.  
  46. ans[0]='1', ans[1] = '1';
  47. for (int i=2; i<101; ++i)
  48. {
  49. ans[i] = addStrings(ans[i-1], ans[i-2]);
  50. }
  51.  
  52. int tc;
  53. cin >> tc;
  54. while (tc--)
  55. {
  56. solve();
  57. }
  58.  
  59.  
  60. return 0;
  61. }
Success #stdin #stdout 0s 5616KB
stdin
3
1
2
100
stdout
1
2
573147844013817084101