我有一个函数,举例,我就写伪代码了void function(value)

  if(value<30)
  {
      function(value+=value)
  }
}我的主要目的不是看value累加,得到一个等比数列的值我想要得到一个等差数列例如
value = 5
用上面的递归算出来就是5,10,20,40但是我想得到的是5,10,15,20,25,30,35,40,45请教该怎么改

解决方案 »

  1.   

    打错了
    if(value <50) 
      

  2.   

    这个简单,直接把value+=value这句改为value+=5就OK了撒.
      

  3.   

      for (value = 5; value < 50; value += 5) 
      { 
         // ...
      } 
      

  4.   

    楼上的理解错了,楼主的意思是value的初始值可能是5,也可以是其它任何值。
    void function(value,cumul_value)
    {
      if(cumul_value <30)
      {    
        function(value,cumul_value+=value)
      }

      

  5.   

    void function(value)
    {
      if(value <30)
      {
          function(value+=5)
      }
    } 这样就得到你要的了