十七、求一个数列的后继项
已知某数列前两项之和为2和3,其后继项根据前面最后两项的乘积,按下列规则生成。
(1)若乘积为一位数,则该乘积即为数列的后继项。
(2)若乘积为两位数,则该乘积的十位数字和各位数字依次作为数列的两个后继项。
编写程序写出该数列的前10项,并求前10项的和。
要求生成的数列后继项及求和过程用函数实现,在主函数中调用该函数。
//17. 求一个数列的后继项 int main() { //声明函数 void creat(int a[],int n); int sum(int *a,int n); int i,s,a[10]={2,3}; //i用作循环,s求和 //调用函数 creat(a,10); s = sum(a,10); for(i=0;i<10;i++) printf("%d",a[i]); //输出每个数 printf("\nsum=%d",s); //输出前10项的和 return 0; } void creat(int a[],int n) //求后继项 { int i,t; for(i=2;i<n;i++) //前2项已有值,从第3项开始 { t = a[i-1]*a[i-2]; if(t/10==0) a[i] = t; else { a[i] = t/10; a[++i] = t%10; } } } int sum(int *a,int n) //求和 { int i,s=0; for(i=0;i<n;i++) s += a[i]; return s; }