版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Dragon_fxl/article/details/88776273
一、
答案: 490
二、
答案: BYQ
三、
代码:
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 30000000;
int a[MAXN];
int main() {
int N = 20190324;
a[1] = a[2] = a[3] = 1;
for (int i = 4; i <= N; ++i)
a[i] = (a[i - 1] + a[i - 2] + a[i - 3]) % 10000;
printf("%d\n", a[N]);
return 0;
}
答案: 4659
四、
思路:
让i <= j <= k, 然后判断i, j, k是否含2和4就行了
代码:
#include <bits/stdc++.h>
using namespace std;
bool isOK(int x) {
for (/* */; x > 0; x /= 10)
if (x % 10 == 2 || x % 10 == 4) return false;
return true;
}
int main() {
int N = 2019;
int cnt = 0;
for (int i = 1; i < N / 3; ++i)
if (isOK(i))
//k = N - i - j > j
for (int j = i + 1; N - i - j > j; ++j)
if (isOK(j) && isOK(N - i - j)) ++cnt;
cout << cnt << endl;
return 0;
}