小赖子的英国生活和资讯

逻辑测试系列之二 – 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

强烈推荐

微信公众号: 小赖子的英国生活和资讯 JustYYUK

阅读 桌面完整版
Exit mobile version