蓝桥题记 01

10道题

蓝桥杯题记

1. 单词分析

难度 简单

题目 https://www.lanqiao.cn/problems/504/learning/?page=1&first_category_id=1&sort=students_count&second_category_id=3

 #include <iostream>
 using namespace std;
 int main()
 {
   // 请在此输入您的代码
   string arr;
  cin >> arr;
  char s[26] = { 0 };
  int max = 0;
  for (int i = 0; i < arr.size(); i++)
  {
  //arr[i]-'a' 获取字母出现的下标 然后进行下加 循环完后即可获取最大值
  s[arr[i] - 'a']++;
 
  }
  //依次与max 比较大小最后即可获取最大值 和获取次数
     //如果有多个字母出现的次数相等,输出字典序最小的那个。 我们倒叙插入 字母顺序依次向下减少
     //同时条件判断也是等于 如果相等 小的字母序列会覆盖大的
  char max_sp;
  for (int i = 25; i >= 0; i--)
  {
  if (s[i] >= max)
  {
  max = s[i];
  max_sp = char(i + 'a');
  }
  }
 
 cout << max_sp << endl ;
 cout << max ;
 
 
   return 0;
 }
2.成绩统计

难度:简单

https://www.lanqiao.cn/problems/502/learning/?first_category_id=1&page=1&sort=students_count&second_category_id=3

 #include <iostream>
 
 using namespace std;
 
 int main()
 {
     
  int a;
  cin >> a;
  //学生成绩的保存 有多少个人就有多少成绩
  int n;//临时成绩保存
  int jige = 0;//及格人数
  int youx = 0;//优秀人数
  //及格率=及格人树/总人数
  //优秀依次
  for (int i = 0; i < a; i++)
  {
  cin >> n;
  if (n >= 60)
  {
  jige++;
  }
  if (n >= 85)
  {
  youx++;
  }
 
  }
 
  printf("%.0f%%\n", (jige*1.0 / a) * 100);//使得以浮点型计算
 
  printf("%.0f%%\n", (youx* 1.0/ a) * 100);
   return 0;
 }
3.最短路

难度:简单

题目https://www.lanqiao.cn/problems/609/learning/?page=1&first_category_id=1&sort=students_count

 #include <iostream>
 using namespace std;
 int main()
 {
   // 请在此输入您的代码
   cout<<"6"<<endl;
   return 0;
 }
4.门牌制作

类别: 数字的查找 余数的使用

难度:简单

题目:https://www.lanqiao.cn/problems/592/learning/?page=1&first_category_id=1&sort=students_count

 #include <iostream>
 using namespace std;
 int main()
 {
   // 请在此输入您的代码
  //2020   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
 int num=0;
 for(int i=1;i<=2020;i++)
 {
   //数最多 四位数 依次判断
   //第一判断
 if(i%10==2) num++;//获取个位数
 //获取第2个数
 if (i / 10 % 10 == 2) num++;
 //获取第三个数
 if (i / 100 % 10 == 2) num++;
 //获取第四个数
 if (i / 1000 == 2) num++;
 
 }
 
 cout<<num;
   return 0;
 }
5.卡片拼数

类别 余数的巧用 以及计算机逻辑思维的判断

难度 简单中

https://www.lanqiao.cn/problems/1443/learning/?page=1&first_category_id=1&sort=students_count

 #include <iostream>
 using namespace std;
 int main()
 {
 int arr[10];
 for(int i=0;i<10;i++)
 {
   arr[i]=2021;
 }
 //给 0-9都分配2021张卡片
 //拼数字
 for(int i=1;;i++)
 {
   int x=i;
 while(x)
 {
 if(arr[x%10]==0)//取最后一个数 对应其里面剩余的卡片数
 {
   printf("%d",i-1);
   exit(0);
 }
 arr[x%10]=arr[x%10]-1;//减少卡片的值 //将末尾的数给减少了
 x=x/10;//123 12 1 每个数都将其减少
 
 }
 
 }
   return 0;
 }



posted @ 2023-06-05 23:50  大橘|博客  阅读(134)  评论(0)    收藏  举报