eMatematikas Prisijunk Forumas Egzaminų užduotys ONLINE testai

Tam tikrų skaičių radimas, kuris priklauso nuo įvesto intervalo


Sveiki, yra tokia salyga:


Parašykite programą, kuri kompiuterio ekrane (arba rezultatų faile) parodytų po vieną skaičių eilutėje natūraliųjų skaičių intervalo [n; m] skaičius, kurių paskutinis skaitmuo nelygus 3, tačiau skaičius dalijasi iš 3 be liekanos. Pasitikrinkite: kai n = 30, m = 40, tuomet ekrane turi būti rodoma: 30 36 39

Gal kas zinote kaip si programa turi atrodyt? Jau 1h galvoju ir niekaip neiseina sukurt

Principas paprastas:
prasuki for ciklą nurodytame intervale, o ciklo viduje atlieki tikrinimus:
a) ar skaičiaus paskutinis skaitmuo lygus 3 (tą galima padaryti naudojant dalybą iš 10 su ženklu %, rezultate gaunamas nagrinėjamo skaičiaus paskutinis skaitmuo).
b) ar skaičius dalijasi iš 3 (tą galima padaryti naudojant dalybą iš 3 su ženklu %, rezultate gaunama liekana, jei ji lygi 0, vadinasi skaičius dalus iš 3).
Tam pačiame cikle darai if tikrinimą, ar galioja abi a) ir b) sąlygos, jei taip, tai išvedi skaičių.

Dekui labai, bet gal zinai kaip turi atrodyti kai surasai, nes cia nauji terminai, kuriuos girdziu :)), o klaseje nieko panasaus nesprendeme

Dovanoju main funkcijos kodą:
int m, n;
cin >> m >> n;
for(int skaicius=m;skaicius<=n;skaicius++)
{
if(skaicius%10!=3&&skaicius%3==0) cout << skaicius << " ";
}
return 0;
Įsimesk jį pažiūrėk, ar veikia.
Aiškinu kiekvieną eilutę:
Isivedame reikalingus kintamuosius:
int m, n; Parašome komandą juos įvesti:
cin >> m >> n; for ciklu tikriname intervalą (kintamasis skaicius yra skirtas surasti mums tinkamas reikšmes išvedimui). skaicius=m reiškia, jog pradedame tikrinimą nuo reikšmės m, skaicius<=n reiškia, jog tikriname tol, kol kintamasis skaicius įgyja nedidesnę reikšmę, kaip n, skaicius++ reiškia, jog kiekvienąkart įvykdę ciklą (kodą esantį po for tarp {}) padidintume kintamojo skaicius reikšmę vienetu, t.y. tikrintume sekančią intervalo reikšmę:for(int skaicius=m;skaicius<=n;skaicius++)Cikle atliekame tikrinimą if, tikriname ar galioja sąlygos skaicius%10!=3 ir skaicius%3==0. Tai yra sąlygos a) ir b) aprašytos komentare aukščiau. Ženklu && reikalaujame, jog galiotų abi sąlygos. Jei sąlyga galioja komanda cout << skaicius << " " išvedame skaičių.if(skaicius%10!=3&&skaicius%3==0) cout << skaicius << " ";

pakeista prieš 4 m

for (int m=m, n<=n)
    {
        if p % 10 == 3
          p % 3 == 0


neisivaizduoju kaip sprest, kiek supratau o su tuo for tai neiznau kaip irasyt, kai konkretus intervalu skaiciai nesurasyti

dekui labai

Prašom :)

pakeista prieš 4 m

Nori sudalyvauti šioje temoje ir parašyti savo pranešimą? Prisijungti »