รหัสตายอยู่ที่นั่นไม่ทำอะไรเลยจ้องมองที่เรารู้ว่ามันจะไม่ถูกประหารชีวิต ... แต่วันนี้เราสามารถแก้แค้นได้
สเปค
อินพุตจะเป็นสตริงหลายบรรทัด
แต่ละบรรทัดอย่างใดอย่างหนึ่งอาจจะเป็นที่ได้รับมอบหมายหรือการแสดงออก
การมอบหมาย
การมอบหมายเป็นรูปแบบ<name> = number
ที่ชื่อเป็นลำดับของตัวอักษรขีดล่างและตัวเลข แต่ไม่เริ่มต้นด้วยตัวเลข
ตัวแปรอาจถูกกำหนดจำนวนครั้งใดก็ได้
การแสดงออก
นิพจน์เป็นของฟอร์ม <var_name OR number> <operation> <var_name OR number> ...
นิพจน์อาจเป็นการรวมกันของ:
- ตัวแปรที่กำหนดไว้แล้ว
- ตัวดำเนินการทางคณิตศาสตร์พื้นฐาน
+-*/
- ตัวเลข (จำนวนเต็ม)
ผลลัพธ์ที่คาดหวัง
คุณควรเอาท์พุทสตริงกับซ้ำซ้อนได้รับมอบหมาย , การมอบหมายงานที่ไม่เคยใช้โดยใด ๆ ของการแสดงออกต่อไปนี้มันออก โปรดทราบว่าการมอบหมายสามารถทำซ้ำซ้อนได้หากทำการมอบหมายเพิ่มเติมให้กับตัวแปรเดียวกันก่อนที่จะดำเนินการนิพจน์โดยใช้ตัวแปรนั้น
กรณีทดสอบ
ใน
a = 10
a * 3
ออก
a = 10
a * 3
ใน
foo = 8
2 - 1
a = 18
ออก
2 - 1
ใน
a = 10
a = 8
b = 4
ab = 72
b / 6
b + 1
ออก
b = 4
b / 6
b + 1
ใน
a = 1
a = 2
a + 1
ออก
a = 2
a + 1
ใน
FooBar1 = 0
Fuz__ = 8
Fuz__ / 1
ออก
Fuz__ = 8
Fuz__ / 1
ใน
a = 1
a + 1
a = 2
a + 1
ออก
a = 1
a + 1
a = 2
a + 1
ใน
a = 1
1 / 5 * 8 + 4
ออก
1 / 5 * 8 + 4
ใน
a = 1
a + 1
a = 1
a + 1
ออก
a = 1
a + 1
a = 1
a + 1
ใน
a = 7
5 / a
ออก
a = 7
5 / a
a = 1; a + 1; a = 1; a + 1;
ไหม: ตำแหน่งที่สองa = 1
สามารถละทิ้งได้เนื่องจากa
ก่อนหน้านี้ถูกตั้งค่าเป็นค่าเดียวกัน (1
)