Advertisement
Mdimit

Task1_step2

Oct 19th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.61 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <string>
  4.  
  5. using namespace std;
  6.  
  7. int counter = -1;
  8. string s= "";
  9. int Fct(int n){
  10.     // Записване на аргумента в променлива за извеждане на резултата от факториел.
  11.     int fct_result = n;
  12.    
  13.     // При първо извикване на функция ще запише в "s" аргумент "n" + " факториел е: ".
  14.     if(counter == -1){
  15.         s += to_string(n) + " факториел е: ";
  16.     }
  17.     counter++; // Смятане на итерации за намиране на дъно и първо извикване.
  18.    
  19.     // Записване в променлива резултата от премножаване на променлива
  20.     // с резултата на извикан факториел.
  21.     if(n > 0){
  22.         s += to_string(n) + "*"; //записване в "s" всички числа от n до 1.
  23.         fct_result *= Fct(n-1);
  24.     }else{
  25.         fct_result = 1;
  26.     }
  27.    
  28.     // Обнуляване на глобални променливи и записване в "s" " и това прави " + резултат
  29.     // при аргумент "n" предаден при първо извикване.
  30.     if(counter == n){
  31.         s.pop_back(); // Махвае на последна "*".
  32.         s += " и това прави " + to_string(fct_result); // Записване в "s" резултата.
  33.         cout << s << endl;
  34.        
  35.         // Обнуляване на глобални променливи.
  36.         counter = 0;
  37.         s = "";
  38.     }
  39.    
  40.     return fct_result;
  41.     }
  42.  
  43. int main(){
  44.     int n;
  45.     cin >> n;
  46.     Fct(n);
  47.     return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement