一种计算机,其有如下原子功能

100、一种计算机,其有如下原子功能:
1、赋值   a=b
2、+1操作,++a; a+1;
3、循环,但是只支持按次数的循环   for(变量名){/*循环里面对变量的修改不影响循环次数*/}
4、只能处理0和正整数
5、函数调用    fun(参数列表)
请用伪代码的形式分别在这个计算机上编程实现变量的加法、减法、乘法。

fun_add(a , b)
{
}
fun_multi(a , b)
{
}
fun_minus(a , b)
{
}

问题的关键在于如何实现自减一操作

fun_add(a , b)  
{  
    result = a;  
    for(b)  
        ++result;  
    return result;  
}  
  
fun_muti(a , b)  
{  
    result = 0;  
    for(b)  
        result = fun_add(result , a);  
    return result;  
}  
  
dec(int n)  
{  
    temp = 0;  
    result = 0;  
    for(n)  
    {  
        result = temp;   //result永远比temp少1,巧妙地减少了一次自增  
        ++temp;  
    }  
    return result;  
}  
/* 
上面的dec这段函数代码执行后,result的值将变为n-1。注意到这段代码在自增时是如何巧妙地延迟了一步的。 
现在,我们相当于有了自减一的函数dec。实现a-b只需要令a自减b次即可 
*/  
fun_minus(a , b)  
{  
    result = a;  
    for(b)  
        result = dec(result);  
}  


你可能感兴趣的:(算法)