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

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.

1

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

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.

2
for(int i=n,N=(int)pow(ceil(sqrt(n+1)),2);i<=N;++i) cout<<i<<' ';
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

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