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]--; // 每一张卡片数量减少1x /= 10;}}return 0;
}
02 最短路
#include <stdio.h>
#include <stdlib.h>
int main()
{// 一眼丁真,鉴定为6printf("%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 九进制转十进制
解析
#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 奇数倍数
解析
#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 第几天
#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;
}