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.
Příspěvky odeslané z IP adresy 2001:718:2601:26c:60f3:b5...–
peter
peter
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_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)