Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- string findSum(string str1, string str2);
- string StringFib(string number, int num){
- string bignumba = "";
- string first = "0";
- string secon = "1";
- for(int i = 0; i < num-1; i++){
- bignumba = findSum(first,secon);
- first = secon;
- secon = bignumba;
- }
- return bignumba;
- }
- int main(){
- int reps;
- cin >> reps;
- while(reps--){
- int a;
- cin >> a;
- string n = to_string(a);
- cout << StringFib(n,a+1) << "\n";
- }
- return 0;
- }
- string findSum(string str1, string str2) {
- if (str1.length() > str2.length())
- swap(str1, str2);
- string str = "";
- int n1 = str1.length(), n2 = str2.length();
- reverse(str1.begin(), str1.end());
- reverse(str2.begin(), str2.end());
- int carry = 0;
- for (int i=0; i<n1; i++)
- {
- int sum = ((str1[i]-'0')+(str2[i]-'0')+carry);
- str.push_back(sum%10 + '0');
- carry = sum/10;
- }
- for (int i=n1; i<n2; i++)
- {
- int sum = ((str2[i]-'0')+carry);
- str.push_back(sum%10 + '0');
- carry = sum/10;
- }
- if (carry)
- str.push_back(carry+'0');
- reverse(str.begin(), str.end());
- return str;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement