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

目录


A 空间

在这里插入图片描述

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

B 卡片

在这里插入图片描述
1.解题思路
暴力模拟即可
2.代码

#include<iostream>
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 直线

在这里插入图片描述
1.解题思路

D 货物摆放

在这里插入图片描述

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

代码:


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

#include<iostream>
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<<"还在跑着,这是第"<<n3++<<"次"<<endl;
                }
            }
        }

    }
    cout<<"答案出来了!"<<endl;
    cout<<cou;
}

E 路径

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_52908342/article/details/120363108