浏览代码

day 2-2 finished

5 年之前
父节点
当前提交
5ca98e2623
共有 2 个文件被更改,包括 48 次插入0 次删除
  1. 47 0
      2_2.py
  2. 1 0
      2_2.txt

+ 47 - 0
2_2.py

@@ -0,0 +1,47 @@
+
+def inRange(code,pos):
+	if code[pos+1] <= len(code) and code[pos+2] <= len(code) and code[pos+3] <= len(code):
+		return True
+	else:
+		return False
+
+def compute(code):
+	for v in range(len(code)):
+		code[v] = int(code[v])
+	#print(code)
+	i = 0
+	while i < (len(code) - 3):
+		if code[i] == 1:
+			if not inRange(code,i):
+				return -1
+			code[code[i + 3]] = code[code[i + 2]] + code[code[i + 1]]
+			i += 4
+		if code[i] == 2:
+			if not inRange(code,i):
+				return -1
+			code[code[i + 3]] = code[code[i + 2]] * code[code[i + 1]]
+			i += 4
+		if code[i] == 99:
+			i += 1
+			return code
+		if code[i] not in (1,2,99):
+			i += 1
+			#return -1
+
+
+file = open("3.txt","r")
+input = file.read()
+
+for noun in range(100):
+	for verb in range(100):
+		code = input.replace("\n","").split(",")
+		code[1] = noun
+		code[2] = verb
+		ret = compute(code)	
+		#print(ret)
+		if ret == -1:
+			continue
+		if ret[0] == 19690720:
+			print(ret)
+			print("---done---")
+			exit()

+ 1 - 0
2_2.txt

@@ -0,0 +1 @@
+1,0,0,3,1,1,2,3,1,3,4,3,1,5,0,3,2,10,1,19,1,19,9,23,1,23,6,27,1,9,27,31,1,31,10,35,2,13,35,39,1,39,10,43,1,43,9,47,1,47,13,51,1,51,13,55,2,55,6,59,1,59,5,63,2,10,63,67,1,67,9,71,1,71,13,75,1,6,75,79,1,10,79,83,2,9,83,87,1,87,5,91,2,91,9,95,1,6,95,99,1,99,5,103,2,103,10,107,1,107,6,111,2,9,111,115,2,9,115,119,2,13,119,123,1,123,9,127,1,5,127,131,1,131,2,135,1,135,6,0,99,2,0,14,0