b组十三届蓝桥杯省赛c++组(上)

您所在的位置:网站首页 qq画图ak b组十三届蓝桥杯省赛c++组(上)

b组十三届蓝桥杯省赛c++组(上)

2023-03-23 11:49| 来源: 网络整理| 查看: 265

好久没写蓝桥杯的博客了,马上要比赛了,最后几天刷一刷过去几届的题目,做一个记录。如果能为需要的人尽一下绵薄之力,那是最好不过了。

1、

 

这题非常的简单,你可以直接拿计算机扣出来:2*(9的零次方) + 2 * (9的一次方) + 0 * (9的二次方) + 2 * (9的三次方);实际上我们也要学会变换题目,如果它问你某个十进制数怎么转换成九进制你也要会,无非是从比这个十进制数小的最大9的某次方开始试除。

2、

 这个题目需要注意一个细节,012也是一个顺子不要漏掉了。我建议这个题目直接手写枚举:1231、1230、1023、1123、0123.

在这里说一个这个题目的题外话,就是一个用来判断当前日期是否合法的函数写法:

bool h(int year ,int month ,int day)//把需要判断的日期传进来 { int m[13] = {0 ,31 ,28 ,31 ,30 ,31 ,30 ,31 ,31 ,30 ,31 ,30 ,31};//一个数组用来记录每个月对应的天数,2月暂时记为28天到后面会特判闰年 if (month > 12 || month < 0 || day m[month] && month != 2) return false;//月数不是二月并且天数大于该月分的不合法 if (month == 2)//如果月为二,那么我们就需要判断年份是不是闰年,是闰年二月29天,不是闰年二月28天 { if (year % 400 == 0 || (year % 4 == 0) && (year % 100 != 0)) { if (day > m[month] + 1) return false; } else { if (day > m[month]) return false; } } return true; }

3、

 这题太nt了,不多做解释。

#include #include #include #include using namespace std; long long a ,b ,n; int main() { cin >> a >> b >> n; long long d = a * 5 + b * 2; long long sum = 0; sum = n / d * 7; n %= d; if (n n; for (int i = 1 ;i > ma; for (int i = ma ;i >= 1 ;i --) cin >> a[i]; cin >> mb; for (int i = mb ;i >= 1 ;i --) cin >> b[i];//这里要倒着存贮每一位的数,类似原理就是高精度。因为倒着存储可以保证a和b每一位数都是对应的 for (int i = ma ;i >= 1 ;i --)//用来计算每一位的进制 { int t = max(a[i] ,b[i]) + 1;//保证合法的前提下尽量小,举个例子:我们现在这个数位的数字是9,那么为了成功存储这一位,就需要进制是10,如果是9了话该数字就会进位变成两位数 t = max(t ,2); t = min(t ,n); ans[i] = t; } cnt[1] = 1; for (int i = 2 ;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3