一【题目难度】
- 乙级
二【题目编号】
- 1106 2019数列 (15 分)
三【题目描述】
- 把 2019 各个数位上的数字 2、0、1、9 作为一个数列的前 4 项,用它们去构造一个无穷数列,其中第 n(>4)项是它前 4 项之和的个位数字。例如第 5 项为 2, 因为 2+0+1+9=12,个位数是 2。
- 本题就请你编写程序,列出这个序列的前 n 项。
四【题目示例】
-
输入格式:
输入给出正整数 n ( ≤ 1000 ) n(≤1000) n(≤1000)。 -
输出格式:
在一行中输出数列的前 n 项,数字间不要有空格。 -
输入样例:
10 -
输出样例:
2019224758
题外话:这个数列中永远不会出现 2018,你能证明吗?
五【解题思路】
- 这个题非常简单,只需要利用数组存储每个元素,首先将“2019”按位存入数组,后面只需要用 f o r for for循环遍历每四个做和即可,需要注意题目要求只取个位数。最后输出即可,还要注意题目要求没有空格
六【最终得分】
- 15分
七【代码实现】
#include<stdio.h>
int main()
{
int n,nums[1001] = {0};
scanf("%d",&n);
nums[1] = 2;
nums[2] = 0;
nums[3] = 1;
nums[4] = 9;
for(int i = 5;i<=n;i++)
{
int temp = nums[i - 1] + nums[i - 2] + nums[i - 3] + nums[i - 4];
nums[i] = temp % 10;
}
for(int i = 1;i<=n;i++)
{
printf("%d",nums[i]);
}
return 0;
}