19年蓝桥杯省赛CC++B组

    科技2025-06-06  13

    文章目录

    1:组队2:年号字串3:数列求值数的分解

    1:组队

    2:年号字串

    小明用字母 A 对应数字 1,B 对应 2,以此类推,用 Z 对应 26。对于 27 以上的数字,小明用两位或更长位的字符串来对应,例如 AA 对应 27,AB 对 应 28,AZ 对应 52,LQ 对应 329。 请问 2019 对应的字符串是什么? 【答案提交】 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个大写英文字符串,在提交答案时只填写这个字符串,注意全部大写,填写多 余的内容将无法得分。 **思路:**其实就是把2019转化26进制,然后找对应的字母。 答案:BYQ

    3:数列求值

    给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求 第 20190324 项的最后 4 位数字。 【答案提交】 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个 4 位整数(提示:答案的千位不为 0) ,在提交答案时只填写这个整数,填写 多余的内容将无法得分。

    #include <bits/stdc++.h> #define ll long long const int mod = 1e9+7; const ll ds = 1e15+7; using namespace std; int main() { int d1,d2,d3,d4; d1 = 1; d2 = 1; d3 = 1; for(int i = 4; i <= 20190324; i++){ d4 = (d1+d2+d3)%10000; d1 = d2; d2 = d3; d3 = d4; } cout << d4; return 0; }

    答案:4659

    数的分解

    【问题描述】 把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包 含数字 2 和 4,一共有多少种不同的分解方法? 注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1001+18 和 1001+1000+18 被视为同一种。 【答案提交】 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。 **思路:**因为是2019,可以直接循环求得答案,并且每个数都不能相同而且位置不同算一种答案,所有第二层循环不能从1开始,而是要从i+1开始,k=2019-i-j,可以省去一层循环,k也必须大于j才能保证不会重复。

    #include <bits/stdc++.h> #define ll long long const int mod = 1e9+7; const ll ds = 1e15+7; using namespace std; bool judge(int k) { while(k){ if(k%10 == 2 || k % 10 == 4) return false; k /= 10; } return true; } int main() { int cnt = 0; for(int i = 1; i <= 2019; i++){ if(judge(i)){ for(int j = i + 1; j <= 2019; j++){ int k = 2019 - i - j; if(judge(j)){ if(judge(k) && k > j){ cnt++; } } } } } cout << cnt; return 0; }

    答案:40785

    Processed: 0.008, SQL: 8