code wiki / _hdl_build / evoL_sum.nx
evoL_sum.nx source
↩ module page · 21 lines · 708 B
1// DISCOVERED BY nx_evo_loop (evolved iterative algorithm from examples) -- a real for-loop, at a HELD-OUT x. license_tier: ORIGINAL
2import "nx_syscalls.nx"
3func main() -> i64 {
4 let x: i64 = 7
5 var acc: i64 = 0
6 var i: i64 = 1
7 while i <= x {
8 acc = acc + i
9 i = i + 1
10 }
11 sys_write(1, "RESULT=" as *u8, 7)
12 var mm: i64 = acc
13 if mm < 0 { sys_write(1, "-" as *u8, 1); mm = 0 - mm }
14 let t: *u8 = sys_mmap(28)
15 var k: i64 = 0
16 if mm == 0 { t[0] = 48 as u8; k = 1 }
17 while mm > 0 { t[k] = (48 + (mm % 10)) as u8; mm = mm / 10; k = k + 1 }
18 while k > 0 { k = k - 1; sys_write(1, (((t as i64)+k) as *u8), 1) }
19 sys_write(1, "\n" as *u8, 1)
20 return 0
21}