Advertisement
Guest User

Untitled

a guest
May 29th, 2015
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.92 KB | None | 0 0
  1. begin
  2.   def silnia(liczba) #funkcja od liczenia silni
  3.     return 1 if liczba == 0 #zwraca 1 jezeli liczba argument funkji jest rowny 0 bo 0! = 1
  4.     result = 1
  5.     count = 1
  6.     while count < liczba # petla while z warunkiem jezeli zmienna count jest mniejsza od argumentu - liczba
  7.     count += 1 # zwieksz count o 1
  8.     result = result * count
  9.     end
  10.     return result # zwroc result
  11.   end #zakonczenie funkcji
  12.  
  13.   t = gets.to_i #wczytaj to t liczbe i przekonwertuj ja do inta
  14.   if t < 1 || t > 10**5 #jezeli liczba t < 1 albo wieksza od 10**5 (** oznacza potege)
  15.     puts "Liczba testow jest nieprawidlowa, zamykam program" #wyrzuca na ekran
  16.     exit! #zamyka program
  17.   end #zakonczenie ifa
  18.  
  19.   wyniki = []
  20.  
  21.   t.times do #wykonuje cala petle t razy (t wczytalismy wczesniej)
  22.     #dane = gets.to_i #wczytuje do zmiennej dane i
  23.     reversed = silnia(gets.to_i).to_s.split("").reverse! #do zmiennej reversed umiesc obliczona przez funkcje silnia wczytana liczbe, przekonwertuj otrzymana z funkcji silnia inta do strina go podziel go, dzielac go tworzy sie tablica, ktora jest odwracana (jesli masz tablice [1,2,3,4,5].reverse = [5,4,3,2,1])
  24.     zeros = 0 # zmienna w ktorej bedziemy zapisywac ilosc zer
  25.     i = 0
  26.     count = true #zmienna count ustawiona na true
  27.     while i < reversed.count-1 && count == true #petla while wykonuje sie do poki i < od rozmiaru tablicy reversed i zmienna count to true
  28.       if reversed[i] == "0" #jezeli napotka 0 to wykonuje sie to co jest w ifie
  29.         zeros += 1 # czli zmienna zeros zwieksza o 1
  30.         i += 1 #zmienna i zwieksza o 1
  31.       else #jezeli napotkana liczba jest inna niz 0 to
  32.         count = false #zmienna count ustaw na false przez co nie bedzie wchodzic wiecej w petle while
  33.       end
  34.     end
  35.     wyniki << zeros #po wykonaniu petli while zapisuje zmienna zeros w tablicy z wynikami
  36.   end
  37.   puts "Wyniki" #wyrzuca na ekran
  38.   puts wyniki #wyrzuca na ekran tablice z wynikami
  39. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement