特殊数列

题目:

 已知某数列的前二项为23,其后各项根据当前最后二项的乘积按以下规则生成:

. 若乘积为一位数,则该乘积为数列的后继项;

. 若乘积为二位数,则该乘积的十位数和个位数数字依次作为数列的两个后继项。

本程序在输入数列项N值后,输出该数列的前N项以及前N项的和。

    如:输入 N=10

  输出 2361886424

       SUM(10)=44                     (特殊数列.c


思路:把2,3确定在数组中0和1项中,第三项等于2*3,第四项等于3*6,第四项等于18/10,第五项等于18%10

代码:

#include <stdio.h>
main()
{
	int n,i,sum=0,a[100]={2,3},j=2;
	scanf("%d",&n);
     for (i=2;i<n;i++)   //从2开始,不改变0,1两项的值
	 {
		 a[i]=a[i-1] * a[i-2];
		 if (a[i]/10>0)
		 {
			 a[i+1]=a[i]%10;  //下一个数组元素等于个位
			 a[i]=a[i]/10;    //当前数组元素等于10位
			 i++;
		 }
	 }
	 for (i=0;i<n;i++)
	 {
		 sum+=a[i];
		 printf("%d  ",a[i]);
	 }
	 printf("\n%d\n",sum);

}

    原文作者:珍惜每分每秒
    原文地址: https://blog.csdn.net/qq_36238595/article/details/53340832
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞