第十二届蓝桥杯一月校内模拟赛题解

文章目录

引言

本蒟蒻实力有限,可能有些代码是错误,希望多多包涵,欢迎指出。喜欢本篇文章请一键三连,谢谢~

填空题

请问在 1 到 2020 中,有多少个数既是 4 的整数倍,又是 6 的整数倍
#include <iostream>
using namespace std;
int main()
{
   
   
    int ans = 0;
    for(int i = 1; i <= 2020; ++i)
        if(i%4 == 0 && i %6 == 0) ans++;
    cout<<ans<<endl;
    return 0;
}

My Answer:

168
小明要用二进制来表示 1 到 10000 的所有整数,要求不同的整数用不同的
二进制数表示,请问,为了表示 1 到 10000 的所有整数,至少需要多少个
二进制位?
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
   
   
    int temp = 0;
    string s;
    int ans = 0;
    for(int i = 1; i <= 10000; i++)
    {
   
   
        s.clear();
        int t = i;
        while(t>0)
        {
   
   
            int yu = t%2;
            t /= 2;
            s = s + (char)(yu + '0');
        }
        //cout<<s.size()<<endl;
        ans += s.size();
        int x = s.size();
        temp = max(temp,x);
    }
    cout<<temp<<endl;
    cout<<ans<<endl;
    return 0;
}

My Answer:

14
请问有多少个序列满足下面的条件:
1. 序列的长度为 5。
2. 序列中的每个数都是 1 到 10 之间的整数。
3. 序列中后面的数大于等于前面的数。
#include <iostream>
#include <cstring>
using namespace std;
int a[6];
int main()
{
   
   
    int ans = 0;
    for(int i = 10000; i <= 99999; ++i)
    {
   
   
        memset(a, 0, sizeof a);
        int t = i, idx = 0;
        while(t>0)
        {
   
   
            a[idx++] = t%10;
            t /= 10;
        }
        int ok = 1;
        for(int j = 0; j < idx-1; j++)
            if(a[j] < a[j+1] || a[j] <= 1) ok = 0;
        if(ok) ans++;
    }
    cout<<ans<<endl;
    return 0;
}

My Answer:

1122
一个无向图包含 2020 条边,如果图中没有自环和重边,请问最少包含多
少个结点?

My Answer:

2021
两个字母之间的距离定义为它们在字母表中位置的距离。例如 A 和 C 的
距离为2,L 和 Q 的距离为 5。对于一个字符串,我们称字符串中两两字
符之间的距离之和为字符串的内部距离。例如:ZOO 的内部距离为 22,其
中 Z 和 O 的距离为 11。请问,LANQIAO 的内部距离是多少?
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
int main()
{
   
   
    int ans = 0;
    string s = "LANQIAO";
    for(int i = 0; i < s.size(); i++)
        for(int j = i + 1; j < s.size(); j++)
        {
   
   
         //   if(s[j] > s[i]) cout<<s[j]<<" - " <<s[i]<< " = "<<s[j]-s[i]<<endl;
          //  else cout<<s[i]<<" - " <<s[j]<< " = "<<s[i]-s[j ]<<endl;
            if(s[j] < s[i]) ans = ans + (int)(s[i] - s[j]);
            else  ans = ans + (int)(s[j] - s[i]);
        }
    cout<<ans<<endl;
    return 0;
}

My Answer:

162

编程题

题目描述
给定一个平行四边形的底边长度 l l l 和高度 h h h,求平行四边形的面积。
输入格式
输入的第一行包含一个整数 l l l,表示平行四边形的底边长度。
第二行包含一个整数 h h h,表示平行四边形的高。
输出格式
输出一个整数,表示平行四边形的面积。(提示:底边长度和高都是整数的平行四边形面积为整数)
样例输入

2
7

样例输出

14

数据规模和约定
对于所有评测用例: 1 ≤ l , h ≤ 100 1 \leq l, h \leq 100 1l,h100

#include <iostream>
#include <cstring>
#include <string>
using namespace std;
int main()
{
   
   
    int l,h;
    cin>>l>>h;
    int ans = l*h;
    cout<<ans<<endl
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幸愉信奥

谢谢亲的支持,我会继续努力啦~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值