Witam mam problem nie wiem jak napisać program który wyświetli mi wszystkie liczby 3 i 4 cyfrowe których dwie ostatnie cyfry będą się dzielić przez 4
Pokaż co masz, a podpowiemy co naprawić.
w sensie dwie ostatnie cyfry będą 3,4,6,8? czy chodzi o sume cyfr a może liczba złożona z dwóch ostatnich cyfr?
daniel1302 napisał(a):
w sensie dwie ostatnie cyfry będą 3,4,6,8? czy chodzi o sume cyfr a może liczba złożona z dwóch ostatnich cyfr?
chodzi o to ze jak bedzie np 3044 to te dwie ostatnie liczby mają sie dzielic przez 4 tak samo jak bedzie 144
A 128? 28 się dzieli przez 4, ale 2 już nie
@daniel1302: raczej chodzi o to, że program ma wyświetlić wszystkie liczby 3- i 4-cyfrowe. Każda prawidłowa liczba to taka, której dwie ostatnie cyfry mają być podzielne bez reszty przez 4
, czyli ostatnie cyfry muszą być 4
lub 8
, to daje wszystkie liczby zakończone 44
, 48
, 84
lub 88
.
Nie wykluczam, że OP nie opisał zadania dobrze – równie dobrze może być tak, że dwie ostatnie cyfry mają tworzyć liczbę, która będzie podzielna przez 4
. Wtedy każda prawidłowa będzie zakończona cyframi 04
, 08
, 12
, 16
itd.
kq napisał(a):
A 128? 28 się dzieli przez 4, ale 2 już nie
nie może być 128 bo 2 sie nie dzieli i własnie w tym problem jak to napisac
furious programming napisał(a):
@daniel1302: raczej chodzi o to, że program ma wyświetlić wszystkie liczby 3- i 4-cyfrowe. Każda prawidłowa liczba to taka, której dwie ostatnie cyfry mają być podzielne bez reszty przez
4
, czyli ostatnie cyfry muszą być4
lub8
, to daje wszystkie liczby zakończone44
,48
lub88
.Nie wykluczam, że OP nie opisał zadania dobrze – równie dobrze może być tak, że dwie ostatnie cyfry mają tworzyć liczbę, która będzie podzielna przez
4
. Wtedy każda prawidłowa będzie zakończona cyframi04
,08
,12
,16
itd.
tak wlasnie o to chodzi sorki ze tak nie przejzyscie napisane
Okej. W wariancie najbardziej banalnym: iterujesz po wszystkich liczbach od 100 do 9999 i dla każdej sprawdzasz, czy ostatnie dwie cyfry to 0, 4 lub 8. Jeśli tak, to je wypisujesz.
for (int i=10; i<=99; i++) {
cout<<i<<"44"<<endl;
cout<<i<<"84"<<endl;
cout<<i<<"48"<<endl;
cout<<i<<"88"<<endl;
}
chyba, że liczby maja sie wyśweitlać w odpowiedniej kolejnosci
Wersja mniej złożona – wykonujesz cztery razy pętlę.
Inicjujesz wartość początkową na 144
i co 100
inkrementujesz iterator dotąd, aż liczba stanie się pięciocyfrową. Drugi przebieg pętli zaczynasz od 148
, trzeci od 184
, a czwarty od 188
.
kq napisał(a):
Okej. W wariancie najprostszym: iterujesz po wszystkich liczbach od 100 do 9999 i dla każdej sprawdzasz, czy ostatnie dwie cyfry to 0, 4 lub 8. Jeśli tak, to je wypisujesz.
ale jak sprawdzic jej 2 OSTATNIE LICZBY bo to one sie muszą dzielic przez 4 bo jak bedzie 3034 to juz jest zle
Stosujesz operator reszty z dzielenia %
- np. 202 % 10
to 2
daniel1302 napisał(a):
for (int i=10; i<=99; i++) { cout<<i<<"44"<<endl; cout<<i<<"84"<<endl; cout<<i<<"48"<<endl; cout<<i<<"88"<<endl; }
chyba, że liczby maja sie wyśweitlać w odpowiedniej kolejnosci
te liczby muszą byc 3 i 4 cyfrowe wszystkie
Pietrucha461 napisał(a):
daniel1302 napisał(a):
for (int i=10; i<=99; i++) { cout<<i<<"44"<<endl; cout<<i<<"84"<<endl; cout<<i<<"48"<<endl; cout<<i<<"88"<<endl; }
chyba, że liczby maja sie wyśweitlać w odpowiedniej kolejnosci
te liczby muszą byc 3 i 4 cyfrowe wszystkie
jak dodac do tej petli jeszcze liczby 3 cyfrowe ? bo jak zmieniam 10 na 100 a 99 na 9999 to nawet liczby 6 cyfrowe wyskakuja
for (int i = 1; i <= 99; i++)
Jeśli nie rozumiesz kodu to zmienianie go na pałę w niczym nie pomoże. ;)