蓝桥杯第十一届C++B组真题
试题A: 门牌制作 链接:1.门牌制作 - 蓝桥云课
C++代码:
#include <iostream> #include <string> using namespace std; int main() { // 请在此输入您的代码 int aus = 0; for(int i = 1; i <= 2020; i++){ string s = to_string(i); int len = s.size(); for(int j = 0; j < len; j++){ if(s[j] == '2') aus++; } } cout << aus << endl; return 0; }试题B: 既约分数 链接:1.既约分数 - 蓝桥云课
C++代码:
#include <iostream> using namespace std; //最大公约数 int gcd(int a, int b){ return b>0? gcd(b,a%b): a; } int main() { // 请在此输入您的代码 int aus = 0; for(int i = 1; i <= 2020; i++){ for(int j = 1; j <= 2020; j++){ if(gcd(i,j) == 1) aus++; } } cout << aus << endl; return 0; }试题C: 蛇形填数 链接:1.蛇形填数 - 蓝桥云课
C++代码:
#include <bits/stdc++.h> using namespace std; int a[21][21] = {0}; int main(){ a[0][0] = 1; int left = 0, right = 0, aus = 1; while(!a[19][19]){ a[left][++right] = ++aus; while(right){ a[++left][--right] = ++aus; } a[++left][right] = ++aus; while(left){ a[--left][++right] = ++aus; } } cout << a[19][19]; return 0; }试题D: 跑步锻炼 链接:1.跑步锻炼 - 蓝桥云课
C++代码:
#include <iostream> using namespace std; //遍历每一天 int main(){ int sum = 0; //创建每个月的天数 int day[13] = {0, 31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; //创建每个星期,因为从星期六开始 int week[7] = {6, 7, 1, 2, 3, 4, 5}; int len = 0; for(int i = 2000; i <= 2020; i++){ //判断这一年是闰年还是平年 if((i % 4 == 0) && (i % 100 != 0) || (i % 400 == 0)){ //闰年 day[2] = 29; } else day[2] = 28; //平年 //遍历每一天 for(int j = 1; j <= 12; j++){ for(int k = 1; k <= day[j]; k++){ //如果是星期一或者是月初,sum+=2。 if(week[len % 7] == 1 || k == 1){ sum += 2; } //否则sum++。 else sum++; len++; //截至到2020年10月1日 if(i == 2020 && j == 10 && k == 1){ cout << sum; return 0; } } } } }