Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
51
Task/Look-and-say-sequence/BCPL/look-and-say-sequence.bcpl
Normal file
51
Task/Look-and-say-sequence/BCPL/look-and-say-sequence.bcpl
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
get "libhdr"
|
||||
|
||||
manifest $(
|
||||
amount = 15
|
||||
bufsize = 128
|
||||
$)
|
||||
|
||||
let move(dest,src) be
|
||||
$( until !src = 0 do
|
||||
$( !dest := !src
|
||||
dest := dest + 1
|
||||
src := src + 1
|
||||
$)
|
||||
!dest := 0
|
||||
$)
|
||||
|
||||
let count(v) = valof
|
||||
$( let i=1
|
||||
while v!i = !v do i := i + 1
|
||||
resultis i
|
||||
$)
|
||||
|
||||
let looksay(in,out) be
|
||||
$( until !in = 0 do
|
||||
$( let n = count(in)
|
||||
out!0 := n
|
||||
out!1 := !in
|
||||
out := out + 2
|
||||
in := in + n
|
||||
$)
|
||||
!out := 0
|
||||
$)
|
||||
|
||||
let show(v) be
|
||||
$( until !v = 0 do
|
||||
$( writen(!v)
|
||||
v := v + 1
|
||||
$)
|
||||
wrch('*N')
|
||||
$)
|
||||
|
||||
let start() be
|
||||
$( let buf1 = vec bufsize and buf2 = vec bufsize
|
||||
buf1!0 := 1
|
||||
buf1!1 := 0
|
||||
for n = 1 to amount do
|
||||
$( show(buf1)
|
||||
looksay(buf1,buf2)
|
||||
move(buf1,buf2)
|
||||
$)
|
||||
$)
|
||||
Loading…
Add table
Add a link
Reference in a new issue