蓝桥杯 题库 简单 每日十题 day2-LMLPHP

01 卡片

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

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

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

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

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

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

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

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

解析

#include <stdio.h>
#include <stdlib.h>
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;
}

02 最短路

蓝桥杯 题库 简单 每日十题 day2-LMLPHP

#include <stdio.h>
#include <stdlib.h>
int main()
{
  // 一眼丁真,鉴定为6
  printf("%d",6);

  return 0;
}

03 跑步锻炼

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

小蓝每天都锻炼身体。

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

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

解析

#include<stdio.h>//依次判断年月日周 
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;//一点一点来不要怕错 
}

04 九进制转十进制

蓝桥杯 题库 简单 每日十题 day2-LMLPHP

解析

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
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;
}

05 纸张尺寸

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

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

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

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

A0

样例输出1

1189
841

样例输入 2

A1

样例输出 2

841
594

解析

#include<stdio.h>
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;
}

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

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

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

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

C

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
  printf("25600");
  return 0;
}

C++

#include <iostream>
using namespace std;
int main()
{
  cout<<25600<<endl;
return 0;
}

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();
    }
}

Python

import os
import sys
print(25600)

解析

#include <iostream>
using namespace std;
int main()
{
  // 请在此输入您的代码
  int a=100*1024;
  cout<<a/4;
  return 0;
}

07 门牌制作

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

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

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

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

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

解析

#include <iostream>
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;
}

08 奇数倍数

蓝桥杯 题库 简单 每日十题 day2-LMLPHP

解析

#include <stdio.h>
#include <stdlib.h>
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;
}

09 第几天

蓝桥杯 题库 简单 每日十题 day2-LMLPHP

#include <iostream>
using namespace std;
int main()
{
  // 请在此输入您的代码
  printf("%d",31+29+31+30+4);

  return 0;
}

10 倍数

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

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

解析

#include <iostream>
using namespace std;
int main()
{
    int j = 0,i;
    for(i = 12;i <= 2020;)
    {
        j ++;
        i = (j+1)*12;
    }    
    cout << j << endl;
    return 0;
}
09-17 16:54