设a[1]=a[2]=1,
a[n]=a[1]a[n-1]+a[2]a[n-2]+...+a[n-1]a[1],
其中n是正整数,求a[n]。
解:利用递归算法:
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace HelloWorld
{
class Test
{
public static void Main(String[] args){
Console.Write(GetSum(5));
Console.Read();
}
public static int GetSum(int n)
{
if (n <= 2)
return 1;
else
{
int sum = 0;
for (int i = 1; i < n; i++)
{
sum += GetSum(i) * GetSum(n - i);
}
return sum;
}
}
}
}
可以把a[n]=a[1]a[n-1]+a[2]a[n-2]+...+a[n-1]a[1],
看做:∑GetSum(i)*GetSum(n-i),
∑可以看做循环处理,
在每次循环里设置一个变量sum代表这次循环的和(∑),
循环完毕后,将∑返回上层调用继续循环。
算法----分解数例(递归实现)
最新推荐文章于 2024-08-22 17:27:46 发布