算法分析

来源:百度知道 编辑:UC知道 时间:2024/06/08 11:16:49
15. 给定n,试问有多少个仅由1和2组成的序列(每个序列的和为n)。如当n=4时,有5个序列(每个序列和为4):
1+1+1+1, 1+1+2, 1+2+1, 2+1+1, 2+2

编写递归函数,传递需要计算的参数n
递归调用(n-1)或者(n-2),当参数为1时返回1,参数为2时返回2

int check(int n)
{
int a,b;
if(n>2)
{
return (check(n-1)+check(n-2));
}
if(n==2)
{
return 2;//当参数为2时,只有 1+1 ,2两种
}
if(n==1)
{
return 1;//当参数为1时,只有1一种
}
}