Liczby szczęśliwe

0

Liczby szczęśliwe. Po wielomiesięcznych badaniach grupa entuzjastów internetu
stwierdziła, że liczby szczęśliwe mają następujące własności:

  • Liczba 0 jest szczęśliwa
  • Jeśli liczba n jest szczęśliwa, to również liczba 2n jest szczęśliwa, a liczba 2n+1
    jest nieszczęśliwa
  • Jeśli liczba n jest nieszczęśliwa, to również liczba 2n jest nieszczęśliwa, a liczba
    2n+1 jest szczęśliwa.
    Napisz schemat funkcję, której wartością jest liczba 1, jeśli argument funkcji n jest
    liczbą szczęśliwą, a 0 gdy n jest liczbą nieszczęśliwą.

Nie mam pomysłu... O ile wypisać sobie do tablicy kolejne takie liczby jakoś może bym umiał, chociaż bardzo nieefektywnie, to sprawdzić czy liczba jest szczęśliwa już nie. Można niby potem szukać jej w tej tablicy, ale to trochę na około. Jakieś rady? :)

0

Jeśli umiesz stwierdzić czy jakaś liczba jest szczęśliwa to zrób tablicę
bool tablica[X] i wpisuj do i-tego indeksu true jeśli liczba 'i' jest szczęśliwa i false jeśli nie

0

if liczba mod 2 = 0 then szczęśliwa else nieszczęśliwa - zrób z tego schemat blokowy i wsio...

0

@Misiekd ale to nijak ma się do treści. Z treści wynika ze
0 jest szczęśliwe
1 oraz 2 nie są

0
Shalom napisał(a)

@Misiekd ale to nijak ma się do treści. Z treści wynika ze
0 jest szczęśliwe
1 oraz 2 nie są

ech fakt - za nie analizowałem dla jedynki tylko stwierdziłem że jak 1 nie jest to 2 jest bo na przemian :/

0

Nie schemat blokowy, ale sobie przerobisz. Chyba dobrze, ale dla pewności oblicz sobie na kartce kilka wartości z palca i porównaj:

bool IsHappy(int number)
{
	if(number == 0) return true;

	if(number % 2 == 0) return IsHappy(number / 2);
	else return !IsHappy(number / 2);
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1