【说明】
已知某数列的前两项为2和3,其后继项根据当前最后两项的乘积按下列规则生成:
(1)若乘积为一位数,则该乘积即为数列的后继项;
(2)若乘积为二位数,则该乘积的十位数和个位数依次作为数列的两个后继项。
本程序输出该数列的前n项以及它们的和。其中,函数sum(n,pa)返回数列的前n项之和,并将生成的前n项存放于首指针为pa的数组中。程序中规定输入的n值必须大于2并且不超过给定的常数值MAXNUM。
例如:若输入n值为10,则程序输出如下内容:
sum(10)=44
2 3 6 1 8 8 6 4 2 4
#include<stdio.h>
#define MAXNUM 100
int sum(int n,int *pa)
int count,total,temp;
*pa=2;
(1) =3;
total=5; count=2;
while(count++<n)
temp+=*(pa-1)**pa;
if(temp<10)
total+=temp;
*(++pa)=temp;
else
(2) =temp/10;
total+=*pa;
if(count<n)
count++;pa++;
(3) =temp%10;
total+=*pa;
(4) ;
main()
int n,*p,*q,num[MAXNUM];
do
printf("Input N=(2<N<%d):",MAXNUM+1);
scanf("%d",&n);
while( (5) );
printf("\nsum(%d)=%d\n",n,sum(n,num));
for(p=num,q= (6) ;p<q;p++)printf("%4d",*p);
printf("\n");