ITPub博客

首页 > 应用开发 > IT综合 > 算法搜狗笔试题加减法

算法搜狗笔试题加减法

IT综合 作者:dongyu2013 时间:2014-04-26 10:01:15 0 删除 编辑
一种计算机,其有如下原子功能:
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)
{
}
问题的关键在于如何实现自减一操作。
本来让-1自增n次即可实现n的自减的,但系统偏偏又不支持负数。
  1. fun_add(a , b)  
  2. {  
  3.     result = a;  
  4.     for(b)  
  5.         ++result;  
  6.     return result;  
  7. }  
  8.   
  9. fun_muti(a , b)  
  10. {  
  11.     result = 0;  
  12.     for(b)  
  13.         result = fun_add(result , a);  
  14.     return result;  
  15. }  
  16.   
  17. dec(int n)  
  18. {  
  19.     temp = 0;  
  20.     result = 0;  
  21.     for(n)  
  22.     {  
  23.         result = temp;   //result永远比temp少1,巧妙地减少了一次自增  
  24.         ++temp;  
  25.     }  
  26.     return result;  
  27. }  
  28. /* 
  29. 上面的dec这段函数代码执行后,result的值将变为n-1。注意到这段代码在自增时是如何巧妙地延迟了一步的。 
  30. 现在,我们相当于有了自减一的函数dec。实现a-b只需要令a自减b次即可 
  31. */  
  32. fun_minus(a , b)  
  33. {  
  34.     result = a;  
  35.     for(b)  
  36.         result = dec(result);  
  37. }  

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29012686/viewspace-1149843/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-12-25

  • 博文量
    263
  • 访问量
    238063