Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Python: Rekursio (summien etsiminen)

koodaaja [01.12.2021 21:01:20]

#

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,"")

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta