IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Součet všech násobků čísla x, které jsou větší jak 0 a menší jak 100?

V předchozím kvízu, Online test znalostí Python 2.7, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Hrabě
Člen
Avatar
Hrabě:4.2.2020 14:44

Resenim myslim je pouzit dva for cykly. Jak nalozit s jednim cyklem a spocitat nasobky daneho cisla dokazu, ale jak nalozit s tim vnorenym, kde bych pocital soucet, s tim uz si neumim poradit.
Zkousel jsem si to v Thonny apce debugnout, ale porad to na 100% nexapu.

Zkusil jsem: Sumu jsem zkousel pocitat i bez vnoreneho for cyklu, ale taky neuspesne:

nasobek = 7

def nasobky(rozsah):
for i in range(1, rozsah + 1):
j = i * nasobek
suma = 0
suma = j + j
#print(j, , end=)
#print(j)
print(nasobek, '*', i, "=", j, 'suma: ', suma, '=', j, '+', j)

nasobky(10)

Chci docílit: Pochopit a poradne se naučit for cyklus.

 
Odpovědět
4.2.2020 14:44
Avatar
Odpovídá na Hrabě
Matúš Olejník:4.2.2020 15:18

Ahoj, python má pre funkciu range aj tretí parameter ktorý udáva po akých krokoch má cyklus skákať https://wiki.python.org/moin/ForLoop
Inak v pythone záleží aj na odsadení kódu preto keď hentak bez formátu pošleš kód je to k ničomu ;) stlač ctrl + k a vlož ho medzi to.

def printSumOfMultiples(number):
    if number <= 0 or number >= 100:
        print('Valid interval is (0, 100)')
        return

    result = 0
    for i in range(number, 100, number):
        result += i

    print(result)

printSumOfMultiples(10)
Nahoru Odpovědět
4.2.2020 15:18
/* I am not sure why this works but it fixes the problem */
Avatar
Hrabě
Člen
Avatar
Hrabě:4.2.2020 16:28

Aha, takze neni potreba nikde nic zanorovat.
BTW: chtel jsem pouzit ctrl+k, ale nefunguje me to na FF (ani tlacitkem v rich text editoru).

 
Nahoru Odpovědět
4.2.2020 16:28
Avatar
Hrabě
Člen
Avatar
Hrabě:4.2.2020 16:35

JFYI: tak nefukcnost zpusobovalo toto rozsireni: https://addons.mozilla.org/…anguagetool/?…

 
Nahoru Odpovědět
4.2.2020 16:35
Avatar
Hrabě
Člen
Avatar
Odpovídá na Matúš Olejník
Hrabě:4.2.2020 17:43

Porad tomu nerozumim, ten kod co's poslal nedela to co bych chtel.
Prvni krok jsem myslim timto udelal spravne:
vyprintil sem si nasoblky 10 od jedne az do 10 a tedka ty vysledne hodnoty v promenne nasobky potrebuju vsechny secist.

nasobek = 10

def funkce(n):
    for i in range(1, n + 1):
        nasobky = nasobek * i
        print(i, '*', nasobek, '=', nasobky)

funkce(10)

1 * 10 = 10
2 * 10 = 20
3 * 10 = 30
4 * 10 = 40
5 * 10 = 50
6 * 10 = 60
7 * 10 = 70
8 * 10 = 80
9 * 10 = 90
10 * 10 = 100

Editováno 4.2.2020 17:43
 
Nahoru Odpovědět
4.2.2020 17:43
Avatar
Odpovídá na Hrabě
Matúš Olejník:4.2.2020 17:55

V mojom prípade sa v cykle robí pre číslo napr. 10 nasledovné
result = 0 + 10
result = 10 + 20
result = 30 + 30
result = 60 + 40
result = 100 + 50
result = 150 + 60
result = 210 + 70
result = 280 + 80
result = 360 + 90
A keďže píšeš, že chceš sčítavať násobky len menšie ako 100 tak desiaty násobok čísla 10 je 100 čo nie je menšie ako 100 a preto ho do výsledku už nezapočítam, takže výsledok je 450

Editováno 4.2.2020 17:56
Nahoru Odpovědět
4.2.2020 17:55
/* I am not sure why this works but it fixes the problem */
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.