01 删除字符
题目描述
给定一个单词,请问在单词中删除t个字母后,能得到的字典序最小的单词是什么?
输入描述
输入的第一行包含一个单词,由大写英文字母组成。
第二行包含一个正整数t。
其中,单词长度不超过100,t小于单词长度。
输出描述
输出一个单词,表示答案。
输入输出样例
示例1
输入
LANQIAO
3
输出
AIAO
#include<stdio.h>#include<stdlib.h>#include<string.h>intmain(){char str1[105];int n;scanf("%s",str1);scanf("%d",&n);int len =strlen(str1);int top =-1;char str2[105]={0};for(int i =0; i < len; i++){while(top >=0&& str2[top]> str1[i]&& n){
top --;
n --;}
str2[++top]= str1[i];}
top -= n;printf("%s",str2);return0;}
02 最大降雨量
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
由于沙之国长年干旱,法师小明准备施展自己的一个神秘法术来求雨。
这个法术需要用到他手中的49张法术符,上面分别写着1至49这49个数字。
法术一共持续7周,每天小明都要使用一张法术符,法术符不能重复使用。
每周,小明施展法术产生的能量为这周7张法术符上数字的中位数。
法术施展完7周后,求雨将获得成功,降雨量为7周能量的中位数。
由于干旱太久,小明希望这次求雨的降雨量尽可能大,请大最大值是多
少?
#include<stdio.h>intmain(){//分析,我们先理解题意,我们如果假设每周的中位数是a,b,c,x,e,f,g,这七个数是这七张//法术符数字上的中位数(即为能量)。降雨量为这七个数的中位数,我们要的是x最大,假设这此时x最大,我们可以看看需要满足什么条件。//七个数从小到大排列 第四周x后三天要比x大,第五周第六周第七周的后四天都要比x大,所以共要有15个数比x大。//所以x最大为34;printf("34");return0;}
03 分数
#include<stdio.h>#include<stdlib.h>intmain(){int x,y;
x=pow(2,20)-1;
y=pow(2,19);printf("%d/%d",x,y);return0;}
04 鲁卡斯队列
#include<iostream>
using namespace std;intmain(){float a =1,b =3,c =0;float n =0;while(1){
n = a/b;if((n>=0.6180335)&&(n<=0.6180344))break;
c = a + b;
a = b;
b = c;}
cout<<a<<'/'<<b;;return0;}
05 公约数
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
如果整数a是整数b的整数倍,则称b是a的约数。请问,有多少个正整数既是2020的约数,又是3030的约数。
#include<iostream>
using namespace std;intmain(){int count=0;for(int i=1;i<=1010;i++){if(2020%i==0&&3030%i==0) count++;}printf("%d",count);// 请在此输入您的代码return0;}
06 求和
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小明对数位中含有2、0、1、9的数字很感兴趣,
在1到40中这样的数包括1、2、9、10至32、39和40,共28个,他们的和是574。
请问,在1到2019中,所有这样的数的和是多少?
#include<iostream>
using namespace std;
bool yes(int num){while(num >0){if(num %10==2|| num %10==0|| num %10==1|| num %10==9)return true;
num /=10;}return false;}intmain(){// 请在此输入您的代码int sum =0;for(int i =1; i <=2019;++i){if(yes(i)) sum += i;}
cout << sum;return0;}
07 字母数
问题描述
请找到一个大于2022的最小数,这个数转换成十六进制之后,所有的数位(不含前导0)都为字母(A到F)。请将这个数的十进制形式作为答案提交。
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为
一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
#include<bits/stdc++.h>
using namespace std;int i=2023;
bool haileo(int x){while(x!=0){if(x%16<10)return0;
x/=16;}return1;}intmain(){while(1){if(haileo(i))break;
i++;}printf("%d",i);return0;}
08 星期计算
#include<iostream>
using namespace std;intmain(){int n=6,s=1;for(int i=1;i<=22;i++){
s*=20;}if(s%7+n-7>0)
cout<<(s%7+n)%7;else cout<<7;}
09 清理水域
问题描述
小蓝有一个n×m大小的矩形水域,小蓝将这个水域划分为n行m列,行数从1到n标号,
列数从1到m标号。每行和每列的宽度都是单位1。
现在,这个水域长满了水草,小蓝要清理水草。每次,小蓝可以清理一块矩形的区域,从第r1行(含)到第r2行(含)的第c1列(含)到c2列(含)。
经过一段时间清理后,请问还有多少地方没有被清理过。
输入格式
输入第一行包含两个整数n,m,用一个空格分隔 第二行包含一个整数t,表示清理的次数。
接下来t行,每行四个整数r1,c1,r2,c2,相邻整数之间用一个空格
分隔,表示一次清理。请注意输入的顺序。
输出格式
输出一行包含一个整数,表示没有被清理过的面积。
样例输入
23211131222
样例输出
2
样例输入
3020255101567159
样例输出
519
#include<iostream>
using namespace std;intmain(){// 请在此输入您的代码int n,m,t,a[105][105]={0},r1,r2,c1,c2,sum =0;
cin >> n>>m >> t;for(int i =0;i < t;i++){
cin >> r1 >> c1>> r2 >> c2;for(int j = r1;j <= r2;j ++){for(int k = c1;k <= c2;k++){if(a[j][k]==0){
a[j][k]=1;//标记被清理的水域
sum ++;//记录被清理的水域 有多少个}}}}int ans = n * m - sum;//(n*m)为水域总数,减去被记录清理水域的个数sum 得出答案
cout << ans ;return0;}
10 二进制表示
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。小明要用二进制来表示1到10000的所有整数,要求不同的整数用不同的二进制数表示,请问,为了表示1到10000的所有整数,至少需要多少个二进制位?
#include<iostream>#include<cmath>
using namespace std;intmain(){int n =1;while(1){if(pow(2, n)>=10000)break;
n++;}
cout << n << endl;}
版权归原作者 暗托涅瓦 所有, 如有侵权,请联系我们删除。