2019 蓝桥杯 省赛 C/C++ B组

这篇博客详细介绍了2019年蓝桥杯省赛C/C++ B组的比赛情况,包括第一题至第六题的题目大意、解题思路及部分题目的代码实现。主要探讨了如何计算篮球队员得分之和的最大值、数字的字母表示、数列求值以及特定条件下的数列分解等编程问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一题

题目大意

大概意思是计算篮球队员得分之和的最大值

思路

分别计算每一列的最大值,然后相加,注意的是,必须不同行,应为一个队员只能在一个位置
答案:490

第二题

题目大意

用A表示1,B表示2,其他类似,求2019的表示

思路

直接实用excel,因为这个跟excel的列标号一致
答案:BYQ

第三题

题目大意

一个数列的前三项都为1,第n项为n-1,n-2, n-3之和,求20190324的值

代码

#include <iostream>
using namespace std;

int tab[30000000];

int main(){
	
	tab[1] = 1;
	tab[2] = 1;
	tab[3] = 1;
	for(long long i = 4; i < 30000000; i++){
		tab[i] = tab[i-1] + tab[i-2] + tab[i-3];
		tab[i] %= 10000;
	}
	cout << tab[20190324];
	//4659
	return 0;
}

第四题

题目大意

将2019分解为不包含2和4的不同的三个数之和,三个数没有顺序

代码

#include <iostream>
using namespace std;

int f(int n){
	while(n > 0){
		if(n % 10 == 2 || n%10 == 4){
			return 0;
		}
		n /= 10;
	}
	return 1;
}

int main(){
	
	int ans = 0;
	for(int i = 1; i < 2019; i++){
		for(int j = i+1; j < 2019; j++){
			int k = 2019 - i - j;
			if(k > j && f(i) && f(j) && f(k)){
//				if(ans < 100){
//					cout << i << " " << j << " " << k << endl;
//				}
				ans++;
			}
		}
	}
	cout << ans;
	
	return 0;
} 

第6题

题目大意

输入n,求1到n中的数包含2,0,1,9的数的和

代码

#include <iostream>
using namespace std;

int f(int n){
	while(n > 0){
		if(n%10 == 2 || n%10 == 0 || n%10 == 1|| n%10 == 9){
			return 1;
		}
		n /= 10;
	}
	return 0;
}

int main(){
	
	long long n;
	long long ans = 0;
	cin >> n;
	for(int i = 1; i <= n; i++){
		if(f(i)){
			ans += i;
		}
	}
	cout << ans;
	
	return 0;
}

其他题就记不到了,欢迎补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值