这种只有4条语句的语言能做什么呢? 今天我们来定义一个DECR函数, 该函数就是把 变量 X 减一.
1 2 3 | DECR(X) { } |
DECR(X) { }
要求填写函数体, 使用 INCR, LOOP, ZERO, 和 ASGN 仅有的4个语句. 我们不妨想一下, 已知变量 X 是非负整数, 那么我们只需要 循环 X-1次, 每次把X从0加1即可.
1 2 3 4 5 6 7 | DECR(X) { ZERO(V1) LOOP(X) { ASGN(X, V1) INCR(V1) } } |
DECR(X) { ZERO(V1) LOOP(X) { ASGN(X, V1) INCR(V1) } }
我们翻译成 C++, 可能比较好懂一些:
1 2 3 4 5 6 7 8 9 | void decr(unsigned int &x) { int v1 = 0; int xx = x; for (; x > 0; -- x) { xx = v1; v1 ++; } x = xx; } |
void decr(unsigned int &x) { int v1 = 0; int xx = x; for (; x > 0; -- x) { xx = v1; v1 ++; } x = xx; }
由于C++的 for 里改变 x 值会改变循环次数, 所以我们用了一个临时变量 xx.
英文: Logic Tests Series (2) – DECR
GD Star Rating
loading...
本文一共 144 个汉字, 你数一下对不对.loading...
上一篇: STEEMIT cn区最低保障系统 上线了! Introduction to the CN Wechat Group Voting Robot @justyy
下一篇: 浅谈 Naive Bayes 算法在石头剪刀布游戏的应用
扫描二维码,分享本文到微信朋友圈