Tämä esittelee rekursiota etsien ruudukosta summia, jotka ovat parillisia ja ylittävät tavoitteen. Ohjelma arpoo luvut ennen kuin etsitään summia.
import random
#Tämä koodi esittelee rekursiota.
def LaskeSumma(ruudukko,j,i,koko,summa,tavoite,lauseke):
if (summa >= tavoite and summa % 2 == 0):
#Tulostetaan löydetty lauseke ja summa.
print(lauseke, "=",summa)
return
if (j == 0 and i == 0):
#Luodaan aloitusosa
summa += ruudukko[j][i]
lauseke += str(ruudukko[j][i]) + " "
if (j+1 < koko and i+1 < koko):
#Siirrytään seuraavaan.
if (summa+ruudukko[j][i+1] <= tavoite):
LaskeSumma(ruudukko,j+1,i,koko,summa+ruudukko[j+1][i],tavoite,lauseke+str(ruudukko[j+1][i])+ " ")
if (summa+ruudukko[j][i+1] <= tavoite):
LaskeSumma(ruudukko,j,i+1,koko,summa+ruudukko[j][i+1],tavoite,lauseke+str(ruudukko[j][i+1])+ " ")
return
#Arvotaan ruudukko.
koko = 6
ruudukko = []
for i in range(6):
ruudukko.append([random.randrange(1,10) for _ in range(koko)])
for i in range(6):
print(ruudukko[i])
print("")
LaskeSumma(ruudukko,0,0,koko,0,30,"")Aihe on jo aika vanha, joten et voi enää vastata siihen.