(1)若乘积为一位数,则该乘积就是数列的后继项。
(2)若乘积为两位数,则乘积的十位和个位数字依次作为数列的后继项。
例如,当n=10,求出该数列的前十项是2,3,6,1,8,8,6,4,2,4。编程实现n=10时的数列。
代码:
#include <stdio.h>
#define N 100
//已知某数列前两项为2和3,其后继项根据当前的前两项的乘积按下列规则生成。
void shulie(int a[], int n)
{
int i, s;
a[0] = 2;
a[1] = 3;
for (i = 2; i < n; i++)
{
s = a[i - 2] * a[i - 1];
if (s < 10) {
a[i] = s;
}
else
{
a[i] = s / 10;
a[i + 1] = s % 10;
i++; //这里已经生成两个数据,所以i要从第二个算起
}
}
}
void main()
{
int n;
printf("请输入生成数列的元素个数:");
scanf("%d", &n);
int a[N]; //要预定义一个数组,开始并不知道数组元素个数
shulie(a, n); //数组名作为函数的参数,可以直接修改数组的值
for (int i = 0; i < n; i++)
{
printf("%d ", a[i]);
}
}
测试结果: