C++ podstawy
Kubma: Mam za zadanie napisac program, ktory wykorzystujac petle odpowie mi na pytanie ile jest liczb
trzycyfrowych dodatnich ktorych suma cyfr jest rowna liczbie x podanej przez uzytkownika.
Jakies pomysly? Moja petla ma postac for(int i=100;i<=999;i++). W petli chcialem odpowiednio
zapisac sumy tylko nie mam pojecia jak to zrobic i w ktorym miejscu wstawic if ktory sprawdzi
czy suma tych cyfr jest rowna x. Pomocy 🙁🙁
2 sty 22:44
Basia:
a=cyfra setek = część całkowita x/100
b=cyfra dziesiątek = część całkowita (x−a*100)/10
c=cyfra jedności = x−a*100−b*10
nie pamiętam czy w C++ masz gotową funkcję wykonującą dzielenie całkowite
jeżeli nie masz musisz sam sobie taką napisać
2 sty 22:58
Basia: moje x to co innego niż ta liczba podana przez użytkownika
to kolejno 100,101,....,999
2 sty 22:59
jc: a może potrójna pętla?
int licznik = 0;
for(int i=0; i<10; i++) for(j=0;j<10;j++) for(int k=1; k<10;k++)
if(i+j+k==x) licznik ++;
2 sty 23:11
Basia: też można; Twoja liczba w zapisie pozycyjnym to kjm
tak czy siak "przelatujesz" 900 liczb
zastanawiam się czy można bardziej optymalnie, ale to już nie teraz
2 sty 23:20
Basia: a nie, w potrójnej jest optymalniej chyba; tylko 300 ineracji
2 sty 23:22
Basia: iteracji
2 sty 23:23
Basia : Głupotę napisałam. To też 900 iteracji ale znacznie prostszych.
Zostań przy tym pomyśle pętli potrójnej. No chyba, że jeszcze coś lepszego wymyślisz. Tylko nic
na siłę. A to jest dobre 😊
2 sty 23:38
Pytający:
Basiu, w C++ "/" to właśnie dzielenie całkowite (o ile argumenty są całkowitoliczbowe), a
"%" to dzielenie modulo, np.:
5/2=2
5%2=1
x // dana liczba
x%10 // cyfra jedności
(x/10)%10 // cyfra dziesiątek
(x/100)%10 // cyfra setek
2 sty 23:53
Basia : Jak jest to można używać, ale ta pętla potrójna, którą jc proponuje bardziej mi się
podoba.
Wydaje mi się bardziej optymalna dlatego właśnie, że nie trzeba funkcji dzielenia używać.
Tak na rozum i znajomość zasad ogólnych (bo C++ w ogóle nie znam).
3 sty 00:30
3 sty 20:31