Gruppwebben som samarbetsyta stängs 1 oktober 2026. Du som administratör behöver nu exportera gruppens innehåll och/eller radera gruppen.
Observera: Från och med den 1 oktober 2026 kommer delar av gruppwebben som inte längre används, successivt att stängas ned, exempelvis gruppwebbar som redan har flyttats eller varit inaktiva under en längre tid.
Mer information hittar du i nyheten: Gruppwebben och Social stänger den 1 oktober 2026. Stöd och instruktioner för hur du exporterar en gruppwebb finns i: Gruppwebben som samarbetsyta stängs 1 oktober 2026..
Sjuor
Som gjort för breddenförst med heltalskö.
from queue import Queue
q = Queue()
def makesons(tal):
if tal==100: '
print("Hundra!")
q.put(tal+7)
q.put(tal-7)
q.put(tal*7)
if(tal%7==0):
q.put(tal/7)
q.put(0)
while not q.isempty():
makesons(q.get())
|
Hoppsan, det här programmet håller på länge. Vi inför en boolesk variabel funnen som blir True när vi hittat en lösning, och låter den ingå i slingans villkor.
from queue import Queue
def makesons(tal):
if tal==100:
print("Hundra!")
return True
q.put(tal+7)
q.put(tal-7)
q.put(tal*7)
if(tal%7==0):
q.put(tal/7)
return False
q = Queue()
q.put(0)
funnen = False
while not q.isEmpty() and not funnen:
funnen = makesons(q.get())
|
Ett annat sätt att avbryta programmet är att definiera en egen klass Klar som ärver från Exception.
from queue import Queue
class Klar(Exception):
pass
def makesons(tal):
if tal==100:
print("Hundra!")
raise Klar
q.put(tal+7)
q.put(tal-7)
q.put(tal*7)
if(tal%7==0):
q.put(tal/7)
q = Queue()
q.put(0)
try:
while not q.isEmpty():
makesons(q.get())
except Klar:
print("Lösning funnen.")
|
Om man ska skriva ut lösningen:
from queue import Queue
from sys import exit
class Node:
def __init__(self, tal = 0, op = "", far = None):
self.tal = tal
self.op = op
self.far = far
def insert(tal, op, far):
nod=Node(tal, op, far)
q.put(nod)
def makesons(far):
tal = far.tal
if tal == 100:
writechain(far)
exit()
insert(tal+7, "+", far)
insert(tal-7, "-", far)
insert(tal*7, "*", far)
if(tal%7==0):
insert(tal/7, "/", far)
def writechain(p):
if p != None:
writechain(p.far)
if p.far != None:
print(p.op, "7 =", p.tal)
else:
print(p.tal)
q=Queue()
q.put(Node())
while not q.isEmpty():
makesons(q.get())
|
Utskrift:
0 + 7 = 7 + 7 = 14 * 7 = 98 * 7 = 686 + 7 = 693 + 7 = 700 / 7 = 100 |
Fråga: Kan man snabba upp programmet ytterligare genom att slopa dumbarn? Hur många gånger kommer 0 att läggas in i kön?