题目
用递归实现计算 :1 + 1/3 - 1/5 + 1/7 - 1/9 + .... 1/n 的值,n通过键盘输入
思路
递进阶段:n、...... 、9、7、5、3、1
函数出口:递进到1 开始返回;函数返回值视为“总和”
回归阶段:对当前n'取倒数;“总和”对该倒数结果进行加减,返回新的"总和"
代码
double sum_recursion(int len)
{
if(len==1){return 1;} //函数出口 触发回归阶段操作
if(len>1) //递进阶段
{
if((len+1)%4==0) //回归阶段,根据需要,在对 "总和" 加减后,返回
{
return sum_recursion(len-2)+(double)1/(double)len;
}
else
{
return sum_recursion(len-2)-(double)1/(double)len;
}
}
}
效果