Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.65 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4.  
  5. inline int Cyfra( char znak )
  6. {
  7.     return int(znak-48);        // Funckcja zamieniająca znak na cyfrę
  8. }
  9.  
  10. inline char Znak( int Liczba )
  11. {
  12.     return char(Liczba+48);     // Funkcja zamieniająca cyfrę na znak
  13. }
  14.  
  15.  
  16. string Dodawanie( string &L1, string &L2 )
  17. {
  18.     while( L1.length() != L2.length() )        // Porównywanie długości stringów
  19. {
  20.  
  21. if( L1.length() > L2.length() )     // Jeżeli któryś z nich jest mniejszy to dodajemy zera
  22. {
  23.     L2 = "0" + L2;
  24. }
  25. else
  26.    L1 = "0" + L1;
  27.  
  28. }
  29.  
  30. string Wynik = "";      // Wynik dodawania
  31. int Pomocnicza = 0;         // Zmienna pomocnicza
  32.  
  33. for(int i = L1.length()-1; i >= 0; i-- )  // Właściwa procedura dodawania
  34. {
  35. int Pom = Cyfra(L1[i]) + Cyfra(L2[i]) + Pomocnicza;        // Obliczamy sumę kolejnych cyfr ciągu
  36. Wynik = Znak( Pom % 10 ) + Wynik;                          // Zapisujemy ją do zmiennej Wynik
  37. Pomocnicza = int(Pom/10);
  38. }
  39.  
  40. if( Pomocnicza != 0 )
  41.     Wynik = Znak( Pomocnicza ) + Wynik;        // Jeżeli coś zostało, to dodajemy na początek
  42.  
  43. return Wynik;
  44. }
  45.  
  46.  
  47.  
  48. string Mnozenie( string STR, unsigned long long int INT)
  49. {
  50.  
  51. string Wynik = "0";
  52. unsigned long long i ;
  53.  
  54.  
  55. for(i = 1; i; i <<= 1)
  56. {
  57. if(INT & i)
  58. {
  59. Wynik = Dodawanie(Wynik, STR);
  60. }
  61. STR = Dodawanie(STR, STR);
  62. }
  63.  
  64. return Wynik;
  65. }
  66.  
  67.  
  68.  
  69.  
  70. int main()
  71. {
  72.  
  73. string Silnia = "1";
  74.  
  75. unsigned long long int X, i;
  76.  
  77. cout << "Podaj liczbę, z której chcesz wyznaczyć silnię.\n";
  78. cin >> X;
  79.  
  80.  
  81. for( i = 2; i <= X; i++ )       // Obliczanie silni
  82. {
  83. Silnia = Mnozenie( Silnia, i );
  84. }
  85.  
  86.  
  87. cout << X <<"! = " << Silnia;     // Wypisywanie wyniku
  88.  
  89. return 0;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement