[蓝桥杯 2020 省 B1] 整除序列
题目描述
有一个序列,序列的第一个数是 n,后面的每个数是前一个数整除 2,请输出这个序列中值为正数的项。
输入格式
输入一行包含一个整数 n。
输出格式
输出一行,包含多个整数,相邻的整数之间用一个空格分隔,表示答案。
输入输出样例
输入 #1
20
输出 #1
20 10 5 2 1
说明/提示
对于 80%80% 的评测用例,1≤n≤ 。
对于所有评测用例,1≤n≤ 。
蓝桥杯 2020 第一轮省赛 B 组 F 题。
代码及思路
#include<iostream> using namespace std; int main() { long long int x; cin>>x; while(x>0) { cout<<x<<' '; x=x/2; } return 0; }
[蓝桥杯 2020 省 AB3] 日期识别
题目描述
小蓝要处理非常多的数据, 其中有一些数据是日期。
在小蓝处理的日期中有两种常用的形式:英文形式和数字形式。
英文形式采用每个月的英文的前三个字母作为月份标识,后面跟两位数字表示日期,月份标识第一个字母大写,后两个字母小写, 日期小于 1010 时要补前导 00。11 月到 1212 月英文的前三个字母分别是 Jan
、Feb
、Mar
、Apr
、May
、Jun
、Jul
、Aug
、Sep
、Oct
、Nov
、Dec
。
数字形式直接用两个整数表达,中间用一个空格分隔,两个整数都不写前 导 0
。其中月份用 11 至 1212 分别表示 11 月到 1212 月。
输入一个日期的英文形式, 请输出它的数字形式。
输入格式
输入一个日期的英文形式。
输出格式
输出一行包含两个整数,分别表示日期的月和日。
输入输出样例
输入 #1 Feb08
输出 #1 2 8
输入 #2 Oct18
输出 #2 10 18
说明/提示
蓝桥杯 2020 第三轮省赛 AB 组 F 题。
代码及思路
#include<iostream> #include<vector> using namespace std; int main() { vector <char>arr(5); for(int i=0;i<5;i++) { cin>>arr[i]; } //Jan、Feb、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、Nov、Dec if(arr[0]=='J'&&arr[1]=='a'&&arr[2]=='n')cout<<1; if(arr[0]=='F'&&arr[1]=='e'&&arr[2]=='b')cout<<2; if(arr[0]=='M'&&arr[1]=='a'&&arr[2]=='r')cout<<3; if(arr[0]=='A'&&arr[1]=='p'&&arr[2]=='r')cout<<4; if(arr[0]=='M'&&arr[1]=='a'&&arr[2]=='y')cout<<5; if(arr[0]=='J'&&arr[1]=='u'&&arr[2]=='n')cout<<6; if(arr[0]=='J'&&arr[1]=='u'&&arr[2]=='l')cout<<7; if(arr[0]=='A'&&arr[1]=='u'&&arr[2]=='g')cout<<8; if(arr[0]=='S'&&arr[1]=='e'&&arr[2]=='p')cout<<9; if(arr[0]=='O'&&arr[1]=='c'&&arr[2]=='t')cout<<10; if(arr[0]=='N'&&arr[1]=='o'&&arr[2]=='v')cout<<11; if(arr[0]=='D'&&arr[1]=='e'&&arr[2]=='c')cout<<12; if(arr[3]=='0')cout<<' '; else cout<<' '<<arr[3]; cout<<arr[4]; return 0; }
[蓝桥杯 2019 省 B] 特别数的和
题目描述
小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 00),在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是574。
请问,在 1 到 n 中,所有这样的数的和是多少?
输入格式
输入一行包含一个整数 n。
输出格式
输出一行,包含一个整数,表示满足条件的数的和。
输入输出样例
输入 #1 40
输出 #1 574
说明/提示
对于 20%的评测用例,1≤n≤10。
对于 50% 的评测用例,1≤n≤100。
对于 80% 的评测用例,1≤n≤1000。
对于所有评测用例,1≤n≤10000。
蓝桥杯 2019 省赛 B 组 F 题
代码及思路
#include<iostream> #include<vector> #include<cmath> using namespace std; int main() { //结果 int num = 0; //输入 int n; cin >> n; //2,0,1,9 for (int j = 1; j <= n; j++) { //为了不改变j,j的改变控制这循环 int num1 = j; //因为特殊数中有0,如果初始值都赋值为0,就会造成所有数里面都有0 vector <int>arr(5, -1); int i = 5; //存入数组 while (num1 > 0) { int a =num1 % 10; num1 /= 10; arr[--i] = a; } for (int t = 4; t >-1; t--) { if (arr[t] == -1)break; if (arr[t] == 2 || arr[t] == 0 || arr[t] == 1 || arr[t] == 9) { //因为计算的时候-1会影响答案,有需要赋值为0; for (int m = 0; m < 5; m++) { if (arr[m] == -1)arr[m] = 0; } num += arr[0] * pow(10, 4) + arr[1] * pow(10, 3) + arr[2] * pow(10, 2) + arr[3] * pow(10, 1) + arr[4]; break; } } } cout << num; return 0; }
[蓝桥杯 2020 省 AB2] 成绩分析
题目描述
小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0到 100 的整数。
请计算这次考试的最高分、最低分和平均分。
输入格式
输入的第一行包含一个整数 n,表示考试人数。
接下来 n 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。
输出格式
输出三行。
第一行包含一个整数,表示最高分。
第二行包含一个整数,表示最低分。
第三行包含一个实数,四舍五入保留正好两位小数,表示平均分。
输入输出样例
输入 #1
7
80
92
56
74
88
99
10
输出 #1
99
10
71.29
说明/提示
对于 50%的评测用例, 1≤n≤100。
对于所有评测用例, 1≤n≤10000。
蓝桥杯 2020 第二轮省赛 A 组 F 题(B 组 F 题)
代码及思路
#include<iostream> using namespace std; int main() { int n; int num=0; //平均值,最大值,最小值 int max=0,min=101; double average=0; cin>>n; for(int i=0;i<n;i++) { cin>>num; average+=num; max=(num>max)?num:max; min=(min<num)?min:num; } average=average/(double)n; cout<<max<<endl<<min<<endl; printf("%0.2lf",average); return 0; }