逻辑测试系列之二 – DECR


coding-skills 逻辑测试系列之二 - DECR I.T. 逻辑测试 面试

coding-skills

逻辑测试系列 – 一种只有4种语句的编程语言 – (1)

这种只有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 个汉字, 你数一下对不对.
逻辑测试系列之二 – DECR. (AMP 移动加速版本)
上一篇: STEEMIT cn区最低保障系统 上线了! Introduction to the CN Wechat Group Voting Robot @justyy
下一篇: 浅谈 Naive Bayes 算法在石头剪刀布游戏的应用

扫描二维码,分享本文到微信朋友圈
ad74993788852229055d0d5a6bd2c0da 逻辑测试系列之二 - DECR I.T. 逻辑测试 面试

评论