added more examples, project euler

This commit is contained in:
2025-09-15 18:54:31 +01:00
parent 66d257bf83
commit 3f0d61f466
5 changed files with 79 additions and 9 deletions

4
.gitignore vendored
View File

@@ -1,6 +1,2 @@
.vscode
.idea
dist-newstyle
a.out
out.o
out.asm

18
examples/euler-1.zorth Normal file
View File

@@ -0,0 +1,18 @@
: over swap dup rot rot ;
: rem over over / * - ;
0 1
begin
dup 1000 <
while
dup 3 rem 0 = if
dup rot + swap
else dup 5 rem 0 = if
dup rot + swap
else fi
fi
1+
repeat
drop .

14
examples/euler-2.zorth Normal file
View File

@@ -0,0 +1,14 @@
: over swap dup rot rot ;
: rem over over / * - ;
1 2
begin
over 4000000 <
while
over 2 rem 0 = if
over mem @ + mem swap !
else fi
dup rot +
repeat
mem @ .

38
examples/euler-3.zorth Normal file
View File

@@ -0,0 +1,38 @@
: over swap dup rot rot ;
: rem over over / * - ;
: false 0 ;
: true 1 ;
: palindrome?
mem 0 !
dup begin
dup 0 >
while
dup 10 rem mem @ 10 * + mem swap !
10 /
repeat
drop
mem @ =
;
: ans mem 8 + ;
1 begin
dup 999 <
while
1 begin
dup 999 <
while
over over *
dup palindrome? if
dup ans @ > if ans swap ! else drop fi
else
drop
fi
1+
repeat
drop
1+
repeat
ans @ .

View File

@@ -21,41 +21,45 @@
0 = if
0 = if
32 display
0 = if
( 0 0 0 )
32 display
swap dup 0 !
else
( 0 0 1 )
35 display
swap dup 1 !
fi
else
35 display
0 = if
( 0 1 0 )
35 display
swap dup 1 !
else
( 0 1 1 )
35 display
swap dup 1 !
fi
fi
else
0 = if
32 display
0 = if
( 1 0 0 )
32 display
swap dup 0 !
else
( 1 0 1 )
35 display
swap dup 1 !
fi
else
35 display
0 = if
( 1 1 0 )
35 display
swap dup 1 !
else
( 1 1 1 )
32 display
swap dup 0 !
fi
fi