蓝桥杯省赛第一场 C++ 大学 B 组2021

目录

文章目录

  • 目录
  • A 空间
  • B 卡片
  • C 直线
  • D 货物摆放
  • E 路径


A 空间

蓝桥杯省赛第一场 C++ 大学 B 组2021_第1张图片

1.解题思路
1MB=1024KB=1024B
1B=8bit
所以256MB=256102410248就是所占字节。
所求=256
102410248/32=67108864
答案为:67108864

B 卡片

蓝桥杯省赛第一场 C++ 大学 B 组2021_第2张图片
1.解题思路
暴力模拟即可
2.代码

#include
using namespace std;
main()
{
     
    int a[10];
    for(int i=0;i<10;i++)
    {
     
        a[i]=2021;
    }
    int j,flag=1,m;
    for(int i=1;;i++)
    {
     
        j=i;
        while(j)
        {
     
            a[j%10]--;
            if(a[j%10]<0)
            {
     
                flag=0;
                break;
            }
            j/=10;
        }
        if(flag==0)
        {
     
            break;
        }
        m=i;
    }
    cout<<m;
}

输出:3181

注意:在
if(a[j%10]<0)
{
flag=0;
break;
}
中第一次把if(a[j%10]<=0)输出成了3180,当a【i】=0时不能停止,用完小于0才结束。

C 直线

蓝桥杯省赛第一场 C++ 大学 B 组2021_第3张图片
1.解题思路

D 货物摆放

蓝桥杯省赛第一场 C++ 大学 B 组2021_第4张图片

解题思路
分解因数,暴力遍历。

代码:


第一次想着暴力遍历,结果需要若干个小时才跑的完。

#include
using namespace std;
main()
{
    long long n=2021041820210418,n1,n2,n3=0;
    int cou=0;
    for(long long i=1;i<=n;i++)
    {
        n1=n/i;
        for(long long j=1;j<=n;j++)
        {
            n2=n1/j;
            for(long long p=1;p<=n;p++)
            {
                if(n2%p==0)
                {
                    cou++;
                    cout<<"还在跑着,这是第"<

E 路径

蓝桥杯省赛第一场 C++ 大学 B 组2021_第5张图片

你可能感兴趣的