问题描述
已知某数列前两项为2和3,其后继项根据前面最后两项的乘积,按下列规则生成:
① 若乘积为一位数,则该乘积即为数列的后继项;
② 若乘积为二位数,则该乘积的十位上的数字和个位上的数字依次作为数列的两个后继项。
输出该数列的前N项及它们的和。
输入格式
一个整数N(2≤N≤1000)。
输出格式
第1行输出该数列的前N项的和。
第2行输出该数列的前N项。
输入样例
10
输出样例
sum(10)=44
2 3 6 1 8 8 6 4 2 4
(1)编程思路。
编写函数int sum(int *pa, int n)按数列的生成方法生成数列的前n项并保存在数组pa中,同时将前n项的和作为函数值返回。
(2)源程序。
#include <stdio.h>
#define MAXNUM 1001
int sum(int *pa, int n);
int main()
{
int n,num[MAXNUM];
scanf("%d",&n);
printf("sum(%d)=%d\n",n,sum(num,n));
for (int i=0;i<n;i++)
{
printf("%d ",num[i]);
}
printf("\n");
return 0;
}
int sum(int *pa, int n)
{
int count, total, temp;
*pa = 2;
*(++pa)=3;
total=5;
count=2;
while (count++<n)
{
temp = *(pa-1) * (*pa);
if (temp<10)
{
total+=temp;
*(++pa) = temp;
}
else
{
*(++pa)= temp/10;
total += *pa;
if (count++<n)
{
*(++pa) = temp%10;
total += *pa;
}
}
}
return total;
}
以上就是“c语言编程程序设计:数列求和”的详细内容,想要了解更多C++教程欢迎持续关注编程学习网
扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/10196/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料