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

Program wypisujący 10 pierwszych liczb całkowitych dodatnich, które są nieparzyste i podzielne przez 5.

0 głosów
83 wizyt
pytanie zadane 8 maja w C i C++ przez ace2980 Nowicjusz (120 p.)
Napisz program który wypisze 10 pierwszych liczb całkowitych dodatnich, które są nieparzyste i podzielne przez 5.
Czy mogę dostać jakieś wskazówki jak taki program napisać? Jestem totalnym beginnerem i dopiero się uczę kodować. Z góry wielkie dzięki za każdą chęć pomocy.

1 odpowiedź

+2 głosów
odpowiedź 8 maja przez Apled Mądrala (7,300 p.)
Zakładam, że nie podajesz żadnych wartości "z ręki", więc wystarczy zrobić sobie zmienną, np. counter i ją inkrementować, za każdym razem jak znajdziesz liczbę spełniającą założenie.

Potrzebujesz do tego pętli, która będzie się wykonywać, aż znajdziesz 10 takich liczb, czyli gdy counter == 10, a właściwie counter < 10, bo zaczynasz liczyć od 0. Pętla while się tutaj jak najbardziej nada.

Jak znaleźć wymaganą liczbę? Wystarczy sprawdzać czy jest ona niepodzielna przez 2 i zarazem podzielna przez 5. Jak to sprawdzić? Wystarczy, że poczytasz o operatorze modulo (znak '%') i odrazu dostaniesz odpowiedź. Jak znajdziesz taką liczbę to zwiększasz counter i wypisujesz wartość, a jak nie spełnia warunku to... nic nie robisz.
komentarz 8 maja przez ace2980 Nowicjusz (120 p.)
edycja 8 maja przez ace2980

Udało mi się napisać taki kod, ale z jakiegoś powodu zaczyna wypisywać od liczby 25, a nie 5. Co trzeba by było w nim poprawić, aby zaczął od liczby 5?

#include <iostream>

using namespace std;

int main()
{
    int counter=1;
    int liczba;

    while(counter<=10)
    {
        liczba++;
        if(liczba%5==0 && liczba%2!=0)
        {
            cout << counter << ". " << liczba << endl;
            counter++;
        }

    }
}

 

komentarz 8 maja przez Apled Mądrala (7,300 p.)
    int counter;
    int liczba;

tu jest problem, bo zmienne nie są zainicjalizowane, więc do czego dodajesz? Od czego zaczynasz liczenie? Musisz dać counter = 0 lub 1, zależy czy sprawdzasz < 10 czy <= 10. Podobnie z liczba - również 0 albo 1, w zależności od czego chcesz zaczynać.

Dobrą praktyką jest inicjalizowanie zmiennych ZAWSZE. Nawet jak teraz ich nie będziesz używał, to choćby to 0 im przypisać.

Nie wiem jakiego IDE używasz, ale taki kod albo się nie skompiluje, albo będzie działa błędnie.

if(liczba%5==0 && liczba%2!=0)

Lepiej by było, żebyś zrobił warunek odwrotnie, tj. najpierw modulo 2 potem modulo 5. Dlaczego? Dlatego, że operacja AND sprawdza warunki po kolei. Więc jak pierwszy warunek nie zostanie spełniony, tak już dalej nie będzie sprawdzać, bo operacja tym samym musi zwrócić fałsz. Czyli lepiej sprawdzać, czy liczba % 2 != 0, bo masz po drodze więcej liczb niebędących podzielnymi przez 5, więc warunek liczba % 5 == 0 i tak nie będzie spełniony to po co go sprawdzać za każdym razem? Na tym etapie niby nie musisz zwracać na to większej uwagi, ale jak od razu zaczniesz to potem będzie Ci łatwiej wyrobić sobie lepsze podejście do problemu.

1
komentarz 8 maja przez ace2980 Nowicjusz (120 p.)

Dzięki wielkie za pomoc. Kod teraz działa poprawnie laugh

komentarz 8 maja przez Apled Mądrala (7,300 p.)
Sprostowanie.

Po fakcie się zorientowałem, że źle ci o ifie powiedziałem. Najpierw modulo z 5 jest tutaj lepsze, bo założenie mówi, że MUSI być podzielne przez 5, więc lepiej zacząć sprawdzanie właśnie od tego, bo szybciej będziesz odrzucał nie pasujące liczby.

Wcześniej coś mi się pomyliło i podałem Ci tą logikę trochę na odwrót.

Podobne pytania

0 głosów
1 odpowiedź 109 wizyt
pytanie zadane 13 maja w C i C++ przez Hektor1025 Nowicjusz (210 p.)
+1 głos
0 odpowiedzi 534 wizyt
pytanie zadane 3 października 2021 w C i C++ przez elobenc123 Nowicjusz (130 p.)
0 głosów
0 odpowiedzi 54 wizyt

88,677 zapytań

137,289 odpowiedzi

306,653 komentarzy

58,873 pasjonatów

Motyw:

Akcja Pajacyk

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

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...