Anonymní profil peter – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil peter – Programujte.comAnonymní profil peter – Programujte.com

 

Příspěvky odeslané z IP adresy 2001:718:2601:26c:60f3:b5...–

peter
Python › Přesýpací hodiny a dlažba
24. 10. 2016   #213210

Jo, a musel jsem tam pouzit stdout, protoze pythonfiddle neumi print jako funkci s parametry jako je end, sep a pod. Tak jsem to musel nahradit, aby mi to nezalamoval. Nebo by se to muselo ukladat do promenne a vypsat az na zaver.

peter
Python › Přesýpací hodiny a dlažba
24. 10. 2016   #213209

   

import sys

def f0(n,cb):
    for i in range(n): cb(n,i)
def f1(n,i):
    sys.stdout.write('.')
def f2(n,i):
    sys.stdout.write('x')
def f3(n,i):
    f0(n, f4)
    f0(n, f5)
def f4(n,i):
    a = n - i
    b = i
    f0(b, f1)
    f0(a, f2)
    f0(b, f1)
    print
def f5(n,i):
    b = n - i
    a = i
    f0(b, f1)
    f0(a, f2)
    f0(b, f1)
    print

f3(4,0)
f3(7,0)

testovano na http://pythonfiddle.com/
Nechce se mi ted zjednodusovat f4, f5.

peter
Python › Přesýpací hodiny a dlažba
24. 10. 2016   #213208

python_test - zkousel jsi rozbor ulohy? 

xxxxx
.xxx.
..x..
.xxx.
xxxxx

kdyz x (pocet x) stoupa, pak by y (mezery) melo klesat a opacne. Pak tam tedy mas cyslus vypis '.', vypis 'x', vypis '.'. Ve tvem kodu tam nevidim vypis mezer (tecek).

 Netestovano:

def f0(n,cb):
    for i in range(n): cb(n,i)
def f1(n,i):
    print "."
def f2(n,i):
    print "x"
def f3(n,i):
    cyklus(n, f4)
def f4(n,i):
    a = n - i
    b = i >> 1 // nebo deleno 2
    f0(b, f1)
    f0(a, f2)
    f0(b, f1)

f3(4,0)
f4(7,0)

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý