• Source
    1. #include <iostream>
    2. typedef long long int type;
    3. using namespace std;
    4.  
    5. const type size = 10;
    6.  
    7. type mod (type a) // a%10
    8. {
    9. type next=a/10;
    10. return a-10*next;
    11. }
    12.  
    13. void silnia (type n)
    14. {
    15. cout << "nie ma mnie" << endl;
    16. unsigned int * const T = new unsigned int [size];
    17.  
    18. for(type i = 1; i!=size; ++i)
    19. *(T + i) = 0;
    20. *T = 1;
    21.  
    22. type i;
    23. type liczba_cyfr = 1;
    24.  
    25. for(type k = 2; k<=n; ++k) // 2, 3, 4,..., n
    26. {
    27. for(i = 0; i<liczba_cyfr; ++i) // mnozymy kazdą cyfre
    28. *(T+i)*= k;
    29.  
    30. for(i = 0; i<liczba_cyfr || T[i]>0; ++i)
    31. {
    32. T[i+1]+= T[i];
    33. T[i] = mod(T[i]);
    34. }
    35. liczba_cyfr = i;
    36. }
    37.  
    38. for(unsigned int *wsk = T+size-1; wsk>=T ; --wsk)
    39. cout<<*wsk;
    40.  
    41. return;
    42. }
    43.  
    44. int main()
    45. {
    46. type n;
    47. cin >> n;
    48. silnia (n);
    49. return 0;
    50. }