• 蓝桥杯 题库 简单 每日十题 day2


    在这里插入图片描述

    01 卡片

    题目描述
    本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

    小蓝有很多数字卡片,每张卡片上都是数字 0 到 9。

    小蓝准备用这些卡片来拼一些数,他想从 1 开始拼出正整数,每拼一个,就保存起来,卡片就不能用来拼其它数了。

    小蓝想知道自己能从 1 拼到多少。

    例如,当小蓝有 30 张卡片,其中 0 到 9 各 3 张,则小蓝可以拼出 1 到 10,

    但是拼 11 时卡片 1 已经只有一张了,不够拼出 11。

    现在小蓝手里有 0 到 9 的卡片各 2021 张,共 20210 张,请问小蓝可以从 1拼到多少?

    提示:建议使用计算机编程解决问题。

    解析

    #include 
    #include 
    int main()
    {
        int i;
        int arr[10];
        for (i = 0; i < 10; i++) {
            arr[i] = 2021; // 记录0-9这10张卡片的数量,开始都是2021张
        }
        for (i = 1;; i++) { // 由于不知道到i的边界值,省略,会一直执行
            int x = i; // 用x来存放每一个i的值,防止i值的改变
            while (x) {
                if (arr[x % 10] == 0) { // 当有一张卡片的数量剩余为0张的时候,输出前一个i的值,也就是i-1,并退出
                    printf("%d\n", i - 1);
                    exit(0);
                }
                arr[x % 10]--; // 每一张卡片数量减少1
                x /= 10;
            }
        }
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    02 最短路

    在这里插入图片描述

    #include 
    #include 
    int main()
    {
      // 一眼丁真,鉴定为6
      printf("%d",6);
    
      return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    03 跑步锻炼

    题目描述
    本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

    小蓝每天都锻炼身体

    正常情况下,小蓝每天跑 1 千米。如果某天是周一或者月初(1 日),为了激励自己,小蓝要跑 2 千米。如果同时是周一或月初,小蓝也是跑 2千米。

    小蓝跑步已经坚持了很长时间,从 2000 年 1 月 1 日周六(含)到 2020 年 10 月 1 日周四(含)。请问这段时间小蓝总共跑步多少千米?

    解析

    #include//依次判断年月日周 
    int main(){
        int months[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
        int year,month,day;
        int ans=6;//一月一号是周六 
        int cnt=0;//公里数 
        for(year=2000;year<=2020;year++){
            if(year%4==0&&year%100!=0||year%400==0){
                months[2]=29;
            }else{
                months[2]=28;
            }
        for(month=1;month<=12;month++){//几月 
            for(day=1;day<=months[month];day++){//几日 
                cnt++;//每天一千米 
                if(ans==8){
                    ans=1;//ans自增到 8 时归回 1 
                } 
                if(ans==1||day==1){//或意味着A对,B对,AB同时对三种情况 
                    cnt++;//周一或月初或周一与月初多跑一千米 
                }
                ans++;//进入第二天 
                if(year==2020&&month==10&&day==1){//到2020.10.1结束循环 
                    printf("%d",cnt);
                } 
            }
        }
    }
        return 0;//一点一点来不要怕错 
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    04 九进制转十进制

    在这里插入图片描述

    解析

    #include 
    #include 
    #include 
    int main()
    {
      int a,b,c,d,e;
      int sum;
      a=2022;
    b=a/1000;
    c=a/100%10;
    d=a/10%10;
    e=a%10;
    sum=pow(9,3)*b+pow(9,2)*c+pow(9,1)*d+pow(9,0)*e;
    printf("%d",sum);
      // 请在此输入您的代码
      return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    05 纸张尺寸

    问题描述
    在 ISO 国际标准中定义了 A0 纸张的大小为 1189mm× 841mm, 将 A0 纸 沿长边对折后为 A1 纸, 大小为 841mm× 594mm, 在对折的过程中长度直接取 下整 (实际裁剪时可能有损耗)。将 A1 纸沿长边对折后为 A2 纸, 依此类推。

    输入纸张的名称, 请输出纸张的大小。

    输入格式
    输入一行包含一个字符串表示纸张的名称, 该名称一定是 A0、A1、A2、 A3、A4、A5、A6、A7、A8、A9 之一。

    输出格式
    输出两行,每行包含一个整数,依次表示长边和短边的长度。
    样例输入1

    A0
    
    • 1

    样例输出1

    1189
    841
    
    • 1
    • 2

    样例输入 2

    A1
    
    • 1

    样例输出 2

    841
    594
    
    • 1
    • 2

    解析

    #include
    int main()
    {
        char n;
        int x,a=1189,b=841,t;
        scanf("%c%d",&n,&x);
        while(x--)
        {
            a=a/2;
            t=a;
            a=b;
            b=t;
        }
        printf("%d\n%d",a,b);
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    06 MP3 储存【蓝桥杯填空题示例题目】

    题目描述
    本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

    如果一个 MP3 文件占用磁盘的大小是 4MB,小蓝的硬盘还剩下 100GB 的空间,请问他还可以放多少个这样的 MP3 文件?

    正确解法
    本题正确答案为 25600,只需要在代码中使用输出语句输出即可,各语言示例如下:

    C

    #include 
    #include 
    int main(int argc, char *argv[])
    {
      printf("25600");
      return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    C++

    #include 
    using namespace std;
    int main()
    {
      cout<<25600<<endl;
    return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    Java

    import java.util.Scanner;
    public class Main {
        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            System.out.println(25600);
            scan.close();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    Python

    import os
    import sys
    print(25600)
    
    • 1
    • 2
    • 3

    解析

    #include 
    using namespace std;
    int main()
    {
      // 请在此输入您的代码
      int a=100*1024;
      cout<<a/4;
      return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    07 门牌制作

    题目描述
    本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

    小蓝要为一条街的住户制作门牌号。

    这条街一共有 2020 位住户,门牌号从 1 到 2020 编号。

    小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、0、1、7,即需要 1 个字符 0,22 个字符 1,1 个字符 7。

    请问要制作所有的 1 到 2020 号门牌,总共需要多少个字符 2?

    解析

    #include 
    using namespace std;
    int main()
    {
      // 请在此输入您的代码
      int num=0;
      for(int i=1;i<=2020;i++){
        if(i%10==2) num++;
        if(i/10%10==2) num++;
        if(i/100%10==2) num++;
        if(i/1000==2) num++;
      }
      cout<<num;
      return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    08 奇数倍数

    在这里插入图片描述

    解析

    #include 
    #include 
    int js(int x){
      while(x>0)
      {
        if(x%10%2==0)return 0;
        x/=10;
      }
    return 1;
    }
    
    int main(){
      int ans=2019;
      for(ans;;ans+=2019)
        if(js(ans)){
          printf("%d",ans);break;
          }
      return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    09 第几天

    在这里插入图片描述

    #include 
    using namespace std;
    int main()
    {
      // 请在此输入您的代码
      printf("%d",31+29+31+30+4);
    
      return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    10 倍数

    题目描述
    本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

    请问在 1 到 2020 中,有多少个数既是 4 的整数倍,又是 6 的整数倍。

    解析

    #include 
    using namespace std;
    int main()
    {
        int j = 0,i;
        for(i = 12;i <= 2020;)
        {
            j ++;
            i = (j+1)*12;
        }    
        cout << j << endl;
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
  • 相关阅读:
    Oracle 如何修改当前的序列值
    开学要考IB经济怎么办?
    南大通用数据库-Gbase-8a-学习-06-集群节点扩容(8.6版本)
    诊断Android系统原生代码Native崩溃问题
    centos7.9 telnet其他服务器的端口不通
    IDEA创建一个JavaWeb项目详细步骤
    MySQL数据库——第四节 — MySQL表的增删改查(进阶)
    【Kurbernetes部署】知识点总结(部署方式、网络插件.....)
    分布式链路追踪之Skywalking从入门到CRUD
    YoloV9改进策略:注意力改进、Neck层改进_自研全新的Mamba注意力_即插即用,简单易懂_附结构图_检测、分割、关键点均适用(独家原创,全世界首发)
  • 原文地址:https://blog.csdn.net/weixin_74774974/article/details/132921988