2008年10月22日星期三

用加法实现减法

http://groups.google.com/group/pongba/browse_thread/thread/a5abc11899e04006?pli=1

一个计算机系统包含以下原子操作:
1. 赋值
2. +1
3. 循环(确定次数的循环)
4. 只处理正整数和 0
5. 运算不会溢出
请在该系统上实现减法

















Dingding <hank.d...@gmail.com>的一个思路,供大家讨论。

首先实现自减一操作:
tmp = 0
result = 0
loop(n) {
    result = tmp
    tmp++

}

循环执行后result == n - 1

然后利用该操作作为原语实现任意数的减法操作(假定a>b):
result = a
loop(b) {
    dec(result)

}

循环执行后 result == a - b






















^ - ^ 开心生活,开心工作

雅虎口碑(杭州)--吴志敏 http://babatu.blogspot.com

Google

没有评论: