URAL 2027 2028 兩個有趣的題

2022-08-05 00:09:24 字數 1756 閱讀 4046

這兩個題,講的是有一種奇怪的語言,**是一種二維的矩陣。

前乙個題,是根據所給的要求,寫乙個簡單的直譯器。

後乙個題,是用那種語言寫乙個簡單的小程式。

挺有意思的,所以在這裡紀念一下。順便那個語言的原型是一種叫做befunge的語言。真實存在的喲。

**:簡單的直譯器:  

#include #include 

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

const

int inf = 1

<<30

;const

int maxn = 105

;const

int maxm = 1e5+5

;const

int maxstep =1e6;

const

int max_num =1e5;

const

int dir[4][2] = , , , };

inth, w;

char

g[maxn][maxn];

intnum[maxm], n, curnum;

int pointer[2

], d;

intstepcnt;

int cur, memory[30

];bool

check()

stepcnt++;

if (stepcnt>=maxstep)

pointer[

0] += dir[d][0]; pointer[1] += dir[d][1

];

if (!(0

<=pointer[0]&&pointer[0]0

<=pointer[1]&&pointer[1]

if (curnum>=n) curnum = n-1

;

return

true;}

void

init()

void

run()

else

if ('

!'==c)

else

if ('

+'==c)

cur++;

else

if ('

-'==c)

cur--;

else

if ('

.'==c)

;if (!check()) break

; }

}int

main()

return0;

}

直譯器小程式:

1

9 12

2?..........v

3>.>v>>tv>>v.

4.>.>@..>@^i.

5.-..i..^a.-.

6 .^..+..^+.v<7.t

..i..-a...

8.^+t<..>

9^.........@v

10........#!a<

小程式

合併兩個有序列表

1.尾遞迴 1 def recursion merge sort2 l1,l2,tmp 2if len l1 0 or len l2 0 3tmp.extend l1 4tmp.extend l2 5return tmp6 else 7 if l1 0 dell1 0 10else 11 12del...

jQuery中 可以有兩個引數

概述這個函式接收乙個包含 css 選擇器的字串,然後用這個字串去匹配一組元素。jquery 的核心功能都是通過這個函式實現的。jquery中的一切都基於這個函式,或者說都是在以某種方式使用這個函式。這個函式最基本的用法就是向它傳遞乙個表示式 通常由 css 選擇器組成 然後根據這個表示式來查詢所有匹...

念數字 裡有 兩個錯誤!!!!

7 9 念數字 15 分 輸入乙個整數,輸出每個數字對應的拼音。當整數為負數時,先輸出fu字。十個數字對應的拼音如下 0 ling 1 yi 2 er 3 san 4 si 5 wu 6 liu 7 qi 8 ba 9 jiu 輸入在一行中給出乙個整數,如 1234。在一行中輸出這個整數對應的拼音,...