""" soucet = 0 prvek = 1 k = 0 while True: soucet += prvek k += 1 prvek /= k input(f"{k:3d}: {soucet:10.8f} {prvek:10.8f}") """ #--------------------------------------- mist = 1_000 rezerva = 2 N = mist + rezerva def cislo(cela_cast): return [cela_cast] + N*[0] def vytiskni(cislo): print(cislo[0], ",", *cislo[1:], sep='') def pricti(kcemu, co): prenos = 0 #for i in range(N, -1, -1) for p in range(N+1): i = N - p x = co[i] + kcemu[i] + prenos kcemu[i] = x % 10 prenos = x // 10 """ x = cislo(0) x[N] = 1 vytiskni(x) s = cislo(0) while True: pricti(x, x) vytiskni(x) input("...") """ def vydel(co, cim): global kde_je_prvni_nenulova_cislice while kde_je_prvni_nenulova_cislice < N\ and co[kde_je_prvni_nenulova_cislice] == 0: kde_je_prvni_nenulova_cislice += 1 zbytek = 0 for i in range(kde_je_prvni_nenulova_cislice, N+1): zbytek = 10*zbytek + co[i] co[i] = zbytek // cim zbytek = zbytek % cim """ x = cislo(1) while True: vydel(x, 10) vytiskni(x) input("...") """ soucet = cislo(0) prvek = cislo(1) k = 0 kde_je_prvni_nenulova_cislice = 0 while kde_je_prvni_nenulova_cislice <= N: pricti(soucet, prvek) k += 1 vydel(prvek, k) print(k) #vytiskni(soucet) #vytiskni(prvek) #input("...") vytiskni(soucet)