1. 组队(5分)
作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员,
组成球队的首发阵容。
每位球员担任 1 号位至 5 号位时的评分如下表所示。请你计算首发阵容 1
号位至 5 号位的评分之和最大可能是多少?
2. 年号子串(5分)
小明用字母 A 对应数字 1,B 对应 2,以此类推,用 Z 对应 26。对于 27
以上的数字,小明用两位或更长位的字符串来对应,例如 AA 对应 27,AB 对
应 28,AZ 对应 52,LQ 对应 329。
请问 2019 对应的字符串是什么?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个大写英文字符串,在提交答案时只填写这个字符串,注意全部大写,填写多
余的内容将无法得分。
答案:BYQ
3. 数列求值(10分)
给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求
第 20190324 项的最后 4 位数字。
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个 4 位整数(提示:答案的千位不为 0) ,在提交答案时只填写这个整数,填写
多余的内容将无法得分。
答案:4659
#include<bits/stdc++.h>
using namespace std;
int main(){
int a = 1;
int b = 1;
int c = 1;
int res = 0;
for(long long i = 3; i < 20190324; i++){
res = (a + b + c)%10000;
a = b;
b = c;
c = res;
}
cout<<res;
return 0;
}
4. 数的分解(10分)
【问题描述】
把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包
含数字 2 和 4,一共有多少种不同的分解方法?
注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1001+18 和
1001+1000+18 被视为同一种。
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
答案:40785
#include<bits/stdc++.h>
using namespace std;
int judge(int m){
while(m){
if(m%10 == 2 || m%10 == 4){
return 0;
}
m /= 10;
}
return 1;
}
int main(){
int sum = 0;
for(int i = 1; i < 2019; i++){
if(!judge(i)) continue;
for(int j = i+1; j < 2019; j++){
if(!judge(j)) continue;
for(int k = j+1; k < 2019; k++){
if(!judge(k)) continue;
if(i + j + k == 2019) {
sum++;
}
}
}
}
cout<<sum;
return 0;
}
优化:
#include<bits/stdc++.h>
using namespace std;
int judge(int m){
while(m){
if(m%10 == 2 || m%10 == 4){
return 0;
}
m /= 10;
}
return