计算阶乘(请使用递归算法实现) 3! ==> 3 * 2 * 1
private static int GetFactorial(int num)
{
/*
3 * 3 - 1
2 * 2 - 1
1 return 1
*/
if (num == 1) return 1;
//方法内部又调用自身的过程
//核心思想:将问题转移给范围缩小的子问题
//适用性:在解决问题过程中,又遇到相同问题
//优势:将复杂的问题简单化
//缺点:性能较差
return num* GetFactorial(num - 1);
}
//递:反复调用,将需要的内容“递”到最后一级
//归:逐层返回,将结果“归”还给最开始
//例如:查找某目录内的所有文件,一层一层文件夹内查找
/*
*编写一个函数,当参数为8时,结果为多少?(请使用递归实现)
*1 - 2 + 3 - 4 + 5 - 6......
*/
private static int GetValue(int num)
{
if (num == 1) return 1;
if (num % 2 == 0)
return GetValue(num - 1) - num;
else
return GetValue(num - 1) + num;
}