早教吧 育儿知识 作业答案 考试题库 百科 知识分享

请教一个c语言类似斐波那契数列的递归函数问题已知某数列的前两项为2和3,其后继根据当前的前两项的乘积按下列规则生成:1、若乘积为一位数,则该乘积就是数列的后继项。2、若乘积

题目详情
请教一个c语言类似斐波那契数列的递归函数问题
已知某数列的前两项为2和3,其后继根据当前的前两项的乘积按下列规则生成:
1、若乘积为一位数,则该乘积就是数列的后继项。
2、若乘积为两位数,则乘机的十位数字和个位数字依次做为数列的后继项
求出该数列的前十项为:
2 3 6 1 8 8 6 4 2 4
请用递归函数的方式把这前10项输出
▼优质解答
答案和解析
#include"stdio.h"

void f(int n,int* a,int cur)
{
if(cur==n)
{
for(int i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
}
else{
if(a[cur-1]*a[cur-2]<10){
a[cur]=a[cur-1]*a[cur-2];
f(n,a,cur+1);
}
else{
a[cur]=a[cur-1]*a[cur-2]/10;
a[cur+1]=a[cur-1]*a[cur-2]%10;
f(n,a,cur+2);
}
}

}

int main()
{
int a[10];
a[0]=2;a[1]=3;
f(10,a,2);
return 0;
}