Nejste přihlášen/a.

Přihlásit se do poradny

 

Python - binomická posloupnost

Od: ifrit odpovědí: 4 změna:

Dobrý den,

mám za úkol naprogramovat kod, který se skládá ze vstupu (listu, který obsahuje čísla - 16, 32, 64, ...) a funce, která musí umět spočítat ciferný součet každho čísla v tom listu zvlášť, nevím jak na to zkouším mnoho věcí, ale žídná se nezdá jako ta správná. Tak bych se chtěl zeptat zda je někdo, kdo by byl ochoten poradit. Děkuji moc :)

 

 

4 odpovědi na otázku
Řazeno dle hodnocení

 

 

ithon
hodnocení

0x

v ruby je to primitivní funkcionální oneliner.
a=[13,33,40] ;
a.map{ |i|i.to_s.split("").inject{|a,b| a.to_i+b.to_i } }

=> [4, 6, 4]
V podstatě největší opruz je čísla převést na string, rozdělit na číslice, ty sečíst(ale nejprve opět převést na číslo)
Druhý způsob je to udělat čistě matematicky, kdy číslice rekuzivím dělením deseti
b=814
temp=b;sum=0;
while( del>9 ) do
del, zbytek=del.divmod(10);sum+=zbytek;
end
v pythonu na funkcionální přístup se budou hodit comprehension listy něco jako [iterator^2 for iterator in pole]

ithon

tak se mi tam v druhém algoritmu opakovaného(nikoli rekurzivního) dělení vloudila brutální chyba v algoritmu - nedává to správné výsledky

Jeslti pak přijdete na jakou - nápověda - jde o změnu jednoho znaku

 

wgwe
hodnocení

0x

Ahoj, tady máš řešení pomocí list comprehension:

seznam = [16, 32, 64, 1567]

# převést na string:

seznam2 = [str(x) for x in seznam]

print(seznam2) # [16, 32, 64, 1567]

# oddělit čísla:

seznam3 = [[x for x in cislo] for cislo in seznam2]

print(seznam3) # [[1, 6], [3, 2], [6, 4], [1, 5, 6, 7]]

# převést na integer:

seznam4 = [[int(x) for x in podseznam] for podseznam in seznam3]

print(seznam4) # [[1, 6], [3, 2], [6, 4], [1, 5, 6, 7]]

# sečíst:

seznam5 = [sum(x) for x in seznam4]

print(seznam5) # [7, 5, 10, 19]

wgwe

Místní fórum mi odstranilo uvozovky... ale seznam2 a seznam3 je string

 

 


 

 

 

Přihlásit se k odběru odpovědí z této otázky:

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz.

Používáním poradny vyjadřujete souhlas s personifikovanou reklamou, která pomáhá financovat tento server, děkujeme.

Copyright © 2004-2025 Poradna Poradte.cz. Všechna práva vyhrazena. Prohlášení o ochraně osobních údajů. | [tmavý motiv]