d17
This commit is contained in:
45
day17/d17p1.swift
Normal file
45
day17/d17p1.swift
Normal file
@@ -0,0 +1,45 @@
|
||||
import Foundation
|
||||
|
||||
/*
|
||||
0 adv: A / 2^OP -> A
|
||||
1 bxl: B xor LIT -> B
|
||||
2 bst: OP % 8 -> B
|
||||
3 jnz: jump LIT if A != 0
|
||||
4 bxc: B xor C -> B (ignore op/lit)
|
||||
5 out: OP % 8 -> screen
|
||||
6 bdv: A / 2^OP -> B
|
||||
7 cdv: A / 2^OP -> C
|
||||
|
||||
adv 1 // A = A / 2
|
||||
out A // print(A % 8)
|
||||
jnz 0 // loop while A != 0
|
||||
|
||||
|
||||
2,4, 1,1, 7,5, 1,5, 4,0, 5,5, 0,3, 3,0
|
||||
bst 4 // B = A % 8
|
||||
bxl 1 // B = B xor 1
|
||||
cdv 5 // C = A / 2^B
|
||||
bxl 5 // B = B xor 5
|
||||
bxc 0 // B = B xor C
|
||||
out 5 // print(B % 8)
|
||||
adv 3 // A = A / 2^3
|
||||
jnz 0 // loop while A != 0
|
||||
*/
|
||||
|
||||
// let prog = [2,4, 1,1, 7,5, 1,5, 4,0, 5,5, 0,3, 3,0]
|
||||
//var A = 164279024971709
|
||||
var A = 164279024971453
|
||||
var B = 0
|
||||
var C = 0
|
||||
|
||||
while true {
|
||||
B = A % 8 // 1
|
||||
B = B ^ 1 // 2
|
||||
C = A >> B // 3
|
||||
B = B ^ 5 // 4
|
||||
B = B ^ C // 5
|
||||
print(B % 8, terminator: ",")
|
||||
A = A >> 3
|
||||
if A == 0 { break }
|
||||
}
|
||||
|
Reference in New Issue
Block a user