Algorytm wypisujący liczby od n do kwadratu liczby naturalnej.

Algorytm wypisujący liczby od n do kwadratu liczby naturalnej.
Tytanowyy
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 86
0

Witam,

Otóż od jakiejś godziny głowię się z pewnym problemem, niestety nie mam żadnego pomysłu jak to zrobić. Program ma wyświetlać wszystkie liczby naturalne od podanej, do najbliższego kwadratu podanej liczby naturalnej, czyli np. gdy wejdę z liczbą 1, powinien wyświetlić wszystko do 4, gdy wejdę z 41, do 49.

Próbowałem zapełniać tablicę kwadratami liczb i porównywać, lecz niestety to mi nie wychodziło, najzwyczajniej nie mam pomysłu jak to zrobić, a chyba jest to bardzo proste rozwiązanie, do którego najzwyczajniej nie mogę dojść, czy mógłby mnie ktoś naprowadzić w pewien sposób?
Dzięki wielkie, pozdrawiam serdecznie.

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
1

Licz i wyświetlaj kolejne kwadraty, dopóki policzona wartość nie będzie większa od kwadratu podanej liczby naturalnej.

Wibowit
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: XML Hills
1

Tablica jest zupełnie niepotrzebna. Wystarczy wyszukiwanie binarne, by szybko znaleźć najbliższy kwadrat liczby naturalnej.

No chyba, że wydajność nie jest absolutnie potrzebna to można też olać wyszukiwanie binarne i zrobić tylko funkcję czyLiczbaJestKwadratem zwracającą booleana.

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
2
Kopiuj
for(int i=n,N=(int)pow(ceil(sqrt(n+1)),2);i<=N;++i) cout<<i<<' ';
Tytanowyy
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 86
0

Rzeczywiście, głupi ja, czemu ja na to nie wpadłem, no cóż :P .
Wykorzystałem rozwiązanie użytkownika @Patryk27 z pętlą while jak na ten moment, ale sprawdzę jeszcze dwie inne metody, podane przez Was

Dzięki wielkie za pomoc i serdecznie pozdrawiam

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.