描述
数学老师上课时,在黑板上给同学们写出了一串数字中的前四个数字是:1,9,8,7,并告诉同学们:“这串数字从第五个数起,每一个数都是它前面相邻四个数字之和的个位数字”,请同学们比试一下看哪位同学能很快地找出这串数的规律,然后打印输出这个数列的前N项,并计算前N项的和。
输入
文件中只有一行,包含1个整数N(其中5≤N≤20)。
输出
共有二行。第一行为这个数列的前N项,用空格隔开;第二行为这个数列的前N项的和。
输入样例 1
10
输出样例 1
1 9 8 7 5 9 9 0 3 1 52
解题代码
#include<bits/stdc++.h>
using namespace std;
int a[100000],n,f,ans=0;
int main() {
cin>>n;
a[0]=1;
a[1]=9;
a[2]=8;
a[3]=7;
for(int i=4;i<n;i++){
f=a[i-4]+a[i-3]+a[i-2]+a[i-1];
f%=10;
ans=ans+f;
a[i]=f;
}
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
cout<<endl<<ans+1+9+8+7;
return 0;
}