door hbh-tieltjes » wo apr 15, 2009 4:36 pm
'Twee getallen van 5 cijfers die met elkaar vermenigvuldigd moeten worden,
'bevatten samen alle tien verschillende cijfers in willekeurige volgorde.
'De 5 tussen produkten van 5 of 6 cijfers en het eindprodukt van 9 of 10
'cijfers zijn steeds opgebouwd uit verschillende cijfers.
'Op elke regel kan elk cijfer dus hoogstens één keer voorkomen.
cls:print time$():dim n$(11):teller=0
for a=1 to 9
for b=0 to 9:if b=a then [lusb]
for c=0 to 9:if c=b or c=a then [lusc]
for d=0 to 9:if d=c or d=b or d=a then [lusd]
for e=0 to 9:if e=d or e=c or e=b or e=a then [luse]
for f=1 to 9:if f=e or f=d or f=c or f=b or f=a then [lusf]
for g=1 to 9:if g=f or g=e or g=d or g=c or g=b or g=a then [lusg]
for h=1 to 9:if h=g or h=f or h=e or h=d or h=c or h=b or h=a then [lush]
for i=1 to 9:if i=h or i=g or i=f or i=e or i=d or i=c or i=b or i=a then [lusi]
for j=1 to 9:if j=i or j=h or j=g or j=f or j=e or j=d or j=c or j=b or j=a then [lusj]
gosub [AlleGetallen]
gosub [1e.tussenprodukt]'....zonder dit produkt 3 oplossingen
gosub [2e.tussenprodukt]'....zonder dit produkt 1 oplossing
gosub [3e.tussenprodukt]'....zonder dit produkt 1 oplossing
gosub [4e.tussenprodukt]'....zonder dit produkt 3 oplossingen
gosub [5e.tussenprodukt]'....zonder dit produkt 0 oplossingen
gosub [EindProdukt]'.........zonder dit produkt 192 oplossingen
gosub [PrintScreen]
[lusj]'..........Zo is mijn oplossing.
next j'..........k=abcde...1e getal
[lusi]'..........m=fghij...2e getal zamen 10 verschillende cijfers
next i'............----- x vermenigvuldig
[lush]'............o=j*k...1e.tussenprodukt
next h'............p=i*k...2e.tussenprodukt
[lusg]'............q=h*k...3e.tussenprodukt
next g'............r=g*k...4e.tussenprodukt
[lusf]'............s=f*k...5e.tussenprodukt alle tussenprodukten zonder de extra nullen
next f'............----- + dit optellen niet doen !
[luse]'............n=k*m...Eindprodukt
next e
[lusd]
next d
[lusc]
next c
[lusb]
next b
next a
print time$()
end
[AlleGetallen]
k=a*10000+b*1000+c*100+d*10+e:m=f*10000+g*1000+h*100+i*10+j
o=j*k:p=i*k:q=h*k:r=g*k:s=f*k:n=k*m:return
[1e.tussenprodukt]
o$=str$(o):l=len(o$):for x=1 to l:o$(x)=mid$(o$,x,1):next x
for x=1 to l-1:for y=x+1 to l:if o$(x)=o$(y) then exit for
next y:if o$(x)=o$(y) then exit for
next x:if o$(x)=o$(y) then [lusj]
return
[2e.tussenprodukt]
p$=str$(p):l=len(p$):for x=1 to l:p$(x)=mid$(p$,x,1):next x
for x=1 to l-1:for y=x+1 to l:if p$(x)=p$(y) then exit for
next y:if p$(x)=p$(y) then exit for
next x:if p$(x)=p$(y) then [lusj]
return
[3e.tussenprodukt]
q$=str$(q):l=len(q$):for x=1 to l:q$(x)=mid$(q$,x,1):next x
for x=1 to l-1:for y=x+1 to l:if q$(x)=q$(y) then exit for
next y:if q$(x)=q$(y) then exit for
next x:if q$(x)=q$(y) then [lusj]
return
[4e.tussenprodukt]
r$=str$(r):l=len(r$):for x=1 to l:r$(x)=mid$(r$,x,1):next x
for x=1 to l-1:for y=x+1 to l:if r$(x)=r$(y) then exit for
next y:if r$(x)=r$(y) then exit for
next x:if r$(x)=r$(y) then [lusj]
return
[5e.tussenprodukt]
s$=str$(s):l=len(s$):for x=1 to l:s$(x)=mid$(s$,x,1):next x
for x=1 to l-1:for y=x+1 to l:if s$(x)=s$(y) then exit for
next y:if s$(x)=s$(y) then exit for
next x:if s$(x)=s$(y) then [lusj]
return
[EindProdukt]
n$=str$(n):l=len(n$):for x=1 to l:n$(x)=mid$(n$,x,1):next x
for x=1 to l-1:for y=x+1 to l:if n$(x)=n$(y) then exit for
next y:if n$(x)=n$(y) then exit for
next x:if n$(x)=n$(y) then [lusj]
return
[PrintScreen]
teller=teller + 1
print tab(20);k
print tab(20);m
print tab(20);o
print tab(19);p
print tab(18);q
print tab(17);r
print tab(16);s
print tab(15);n,"oplossing ";teller
print:return
'Er is géén uitkomst die voor alle 8 regels geld.
'Zet je om de beurd een Rem teken (') voor de gosub v/d
'tussen- of eind produkten dan zijn er wel oplossingen mogelijk.
'Graag commentaar op dit programma.
'Wie heeft een betere, snellere of eenvoudiger oplossing?
'Mijn bedoeling was het gebruik van een aantal statements en functies te laten zien.
'vr. gr. Herman