• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Algorytm sprawdzający czy podana liczba jest potęgom 2

Object Storage Arubacloud
+2 głosów
434 wizyt
pytanie zadane 16 października 2021 w Algorytmy przez mn130496 Gaduła (3,530 p.)
Witam

Ostatnio na studiach dostałem takie

 zadanie . Narysuj schemat blokowy programu sprawdzającego czy podana z klawiatury liczba jest potęgom 2. Problem polega na tym że kompletnie nie wiem jak się za to zabrać.Czy ktoś mógłby mi pomóc w rozwiązaniu tego zadania, nie oczekuje gotowca lecz pomysłu, naprowadzenia na sposób rozwiązania tego zadania.Z góry dziękuję za pomoc
komentarz 16 października 2021 przez Whiskey_Taster Pasjonat (15,610 p.)
Z ciekawości - co to za studia?
komentarz 18 października 2021 przez manjaro Nałogowiec (37,390 p.)
Też chciałbym wiedzieć gdzie przyjmują bez matury, ba nawet bez pozytywnego testu ósmoklasisty...

2 odpowiedzi

+3 głosów
odpowiedź 16 października 2021 przez Wiciorny Ekspert (271,430 p.)
wybrane 18 października 2021 przez mn130496
 
Najlepsza

 liczba jest potęgom 2. Problem polega na tym że kompletnie nie wiem jak się za to zabra

Potęga dwójki -> podejdź do problemu i poczytaj o operacji modulo :) jeśli liczba jest potęgą dwójki tzn operacja LICZBA % (MODULO ) 2 == 0 , czyli resszta jest zerem. ( przyczym mówimy tu mówimy dzieleniu do końca... nie raz czyli dla np liczb

y 10 -> 10/2 daje 5 nastepnie 5/2 daje reszte stad juz wiadomo ze nie jest to potęga dwójki, takie operacje można wrzucić w pętle while. 
 

def power_of_2?(number)
 return false if number == 0
 while(number % 2  == 0)
   number = number / 2
 end
 return false if number > 1
 true
end

https://skorks.com/2010/10/write-a-function-to-determine-if-a-number-is-a-power-of-2/
nastepnie utwórz schemat blokowy na tej podstawie  
http://informatyka2.orawskie.pl/?pl_schematy-blokowe,90
http://www.algorytm.org/kurs-algorytmiki/schematy-blokowe.html 
polecam te dwie strony :)

Dodatkowo już masz warunek główny ... obracając to w inny sposób 

0 głosów
odpowiedź 16 października 2021 przez mokrowski Mędrzec (156,140 p.)
Liczba jest potęgą 2, jeśli operacja bitowa AND z tą liczbą i liczbą pomniejszoną o 1, da wynik 0 (zero).

Sprawdź więc warunek: X AND ( X - 1) == 0

Rzecz jasna obowiązuje to dla liczb dodatnich. Już sam wpadnij jak to zrobić dla ujemnych.

Podobne pytania

0 głosów
0 odpowiedzi 233 wizyt
0 głosów
0 odpowiedzi 631 wizyt
pytanie zadane 24 listopada 2018 w Algorytmy przez Olbit Nowicjusz (240 p.)
0 głosów
0 odpowiedzi 361 wizyt

92,654 zapytań

141,543 odpowiedzi

319,954 komentarzy

62,022 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...