把 2019 各个数位上的数字 2、0、1、9 作为一个数列的前 4 项,用它们去构造一个无穷数列,其中第 n(>4)项是它前 4 项之和的个位数字。例如第 5 项为 2, 因为 2+0+1+9=12,个位数是 2。
本题就请你编写程序,列出这个序列的前 n 项。
输入格式:
输入给出正整数 n(≤1000)。
输出格式:
在一行中输出数列的前 n 项,数字间不要有空格。
输入样例:
10
输出样例:
2019224758
分析:数组a[4]中始终保留前4项数字,如果n小于4,就输出前n项;如果n大于等于4,就先输出前四项,然后不断累加a[4]所有元素的值,并对10取余得到个位数字,输出后将a[4]替换为新的前4项方便下一次累加取余~
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#include <iostream> using namespace std; int n, sum, a[4] = {2, 0, 1, 9}; int main() { cin >> n; for (int i = 0; i < min(4, n); i++) cout << a[i]; for (int i = 4; i < n; i++) { sum = (a[0] + a[1] + a[2] + a[3]) % 10; cout << sum; a[0] = a[1], a[1] = a[2], a[2] = a[3], a[3] = sum; } return 0; } |
❤ 点击这里 -> 订阅《PAT | 蓝桥 | LeetCode学习路径 & 刷题经验》by 柳婼