Advertisement
Guest User

Untitled

a guest
Mar 5th, 2015
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.25 KB | None | 0 0
  1. #include <iostream>
  2. #include <array>
  3. #include <sstream>
  4. #include <string>
  5. #include <fstream>
  6. #include <vector>
  7.  
  8. int bignumb(std::string numb);
  9.  
  10. std::vector <int> answer;
  11. std::vector <int>::iterator answer_it;
  12.  
  13. int numb_array[50];
  14.  
  15. int main(){
  16.  
  17.   std::ifstream numblist;
  18.   numblist.open("numberlist.txt");
  19.  
  20.   if (!numblist){
  21.     std::cout << "File not found" << std::endl;
  22.     return 0;
  23.   }
  24.   else{    
  25.     int i = 1;
  26.     for(std::string line; numblist >> line; i++){    
  27.       bignumb(line);      
  28.     }
  29.   }
  30.  
  31.   std::cout << "ANSWER : ";
  32.   for (int i = 0; i < 10; i++){
  33.     std::cout << answer[i];
  34.   }
  35. }
  36.  
  37. int bignumb(std::string numb){
  38.  
  39.   bool carry_over = false;
  40.   int answer_count = answer.size()-1;
  41.   int k = 0;
  42.  
  43.   for(std::string::iterator i = numb.begin(); i !=  numb.end(); i++){
  44.     char a = *i;
  45.     int b = (int)a - '0';
  46.     numb_array[k] = b;  
  47.     k++;
  48.   }  
  49.  
  50.   if (answer.empty() == true){
  51.     for (int i = 0; i != 50; i++){
  52.       int a = numb_array[i];
  53.       answer.push_back(a);
  54.     }      
  55.   }
  56.   else{
  57.     int ans_index = answer.size() - 50;
  58.  
  59.     for (int i = 49; i != -1; i--){    
  60.       int a = numb_array[i];
  61.       int b = answer[ans_index + i];
  62.      
  63.       if (carry_over == true){
  64.     if      (a + b + 1 == 10)     {answer[answer_count] = a + b - 9;      carry_over = true; } 
  65.     else if (a + b + 1 < 10 )     {answer[answer_count] = a + b + 1;      carry_over = false;}
  66.       }
  67.       else if (carry_over == false){
  68.     if (a + b >= 10)              {answer[answer_count] = a + b - 10;     carry_over = true; }
  69.     else                          {answer[answer_count] = a + b;          carry_over = false;}
  70.       }      
  71.       answer_count--;
  72.     }      
  73.   }
  74.  
  75.   if (carry_over == true && answer.size() - 50 != -1){
  76.     if (answer.size() == 50)                   {answer.insert(answer.begin(), 1);}
  77.  
  78.     else{
  79.       for(int i = answer.size() - 50; carry_over == true && i != -1; i--){      
  80.     if      (i == 0 && carry_over == true) {answer.insert(answer.begin(), 1);}
  81.         else if (answer[i-1] + 1 == 10)        {answer[i-1] = 0;               carry_over = true; }
  82.     else if (answer[i-1] + 1 < 10)         {answer[i-1] = answer[i-1] + 1; carry_over = false;}
  83.       }
  84.     }
  85.   }
  86. }
  87.  
  88. //5537376230
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement