2021第十二届蓝桥杯大赛软件赛省赛第二场C/C++B组题目加题解

2021第十二届蓝桥杯大赛软件赛省赛第二场C/C++B组题目加题解

我用的是纯C语言,c++只是比赛前几天接触过,太辣鸡了。。。。。

我是小白!!!很白的那种,小白白哦!!!
今年的蓝桥杯第二场题目对于我这个小白白还算友好,难的不会,起码简单的会一点。我把我把昨天考试的自己的解题结果贴一下(自己的解法!!!不是官方答案),有问题大佬要指正哟!!!
题目链接:https://pan.baidu.com/s/1O146R_4-S5VEd_lsXwwpRA
提取码:fakl
我们来进入正题
试题A【求余】
2021第十二届蓝桥杯大赛软件赛省赛第二场C/C++B组题目加题解_第1张图片
看到第一个题惊呆我了,直接口算就完事。

答案:1

当然也可以用代码实现

#include
int main()
{

	printf("%d\n",2021%20);
	return 0;
}

试题B【双阶乘】
2021第十二届蓝桥杯大赛软件赛省赛第二场C/C++B组题目加题解_第2张图片

答案:59375

这个题比赛的时候爆了,当时我什么都不懂,后来学了一点算法才明白,害,真是亏死了,这么简单。。。

#include
int main()
{
    int i;
    long long sum=1;
    int n;
    printf("请输入:\n");
    scanf("%d",&n);
    if(n%2==0)
    {
         for(i=2;i<=n;i=i+2)
         {
             sum=sum*i%100000;
         }
    }
    if(n%2==1)
    {
        for(i=1;i<=n;i=i+2)
            sum=sum*i%100000;
    }
    printf("结果为:%d\n",sum);
	return 0;
}

蓝桥杯中,能用long long的就不用int。我这里算出来的是整个数,要取最后五位数!!!

试题C【格点】
2021第十二届蓝桥杯大赛软件赛省赛第二场C/C++B组题目加题解_第3张图片
乍一看我以为很难,仔细看了看就是个基础题,不知道我理解的对不对。

答案:15698

代码:

#include 
#include 
int main()
{
    int i,j;
	int sum=0;
	for(i=1;i<=2021;i++)
	{
		for(j=1;j<=2021;j++)
		{
			if(i*j<=2021)
			{
				sum++;
			}
		}
	}
	printf("%d\n",sum);
    return 0;
}

试题D【整数分解】
2021第十二届蓝桥杯大赛软件赛省赛第二场C/C++B组题目加题解_第4张图片
测试3的时候直接用的双重for循环,测试5的时候用了三个for循环,但是到2021用五个for循环直接运行不出来。。。。。。。
哎,最后编了一个结果写上去了。
试题E【城邦】
2021第十二届蓝桥杯大赛软件赛省赛第二场C/C++B组题目加题解_第5张图片

考试的时候以为很难,就没做,等考试快结束了,发现要是认真做还是有希望的,最后放弃了。。。。。
试题F【特殊年份】
2021第十二届蓝桥杯大赛软件赛省赛第二场C/C++B组题目加题解_第6张图片
作为第一个编程大题,还是比较基础的。
直接上代码

#include 
#include 
int f(int num)
{
      int a,b,c,d;
       a=num%10;
       num=num/10;
       b=num%10;
       num=num/10;
       c=num%10;
       num=num/10;
       d=num%10;
       if((b==d)&&(a==c+1))
       {
           return 1;
       }
       return 0;
}
int main()
{
    int sum=0;
   int ar[5];
   for(int i=0;i<5;i++)
   {
       scanf("%d",&ar[i]);
   }
   for(int i=0;i<5;i++)
   {
       if(f(ar[i]))
        sum++;
   }
   printf("%d\n",sum);
    return 0;
}

试题G【小平方】
2021第十二届蓝桥杯大赛软件赛省赛第二场C/C++B组题目加题解_第7张图片
代码:

#include
int main()
{
	int n,sq;
    int sum=0;
    scanf("%d",&n);
    for(int i=1;i<n;i++)
    {
        sq=i*i;
        if((sq%n)<(n/2))
        {
            sum++;
        }
    }
    printf("%d\n",sum);
    return 0;
}

试题H【完全平方数】
2021第十二届蓝桥杯大赛软件赛省赛第二场C/C++B组题目加题解_第8张图片
代码:

#include 
#include 
#include 
#define N 1000000000000
int f(int num,int i)
{
      int a,b;
      b=num*i;
      a=sqrt(b);
      if(a*a==b)
    {
        return 1;
    }

      return 0;
}
int main()
{
    int n,x;
    scanf("%d",&n);
    for(x=1;x<N;x++)
    {
        if(f(n,x))
        {
            break;
        }
    }
    printf("%d\n",x);
    return 0;
}

最后俩大题就看了一下,过过眼瘾,别说咱没见过大世面。作为小白白的我,算法都没学过,压根就没奢望过这俩题
试题I【负载均衡】
2021第十二届蓝桥杯大赛软件赛省赛第二场C/C++B组题目加题解_第9张图片
试题J【国际象棋】
2021第十二届蓝桥杯大赛软件赛省赛第二场C/C++B组题目加题解_第10张图片
对于我这个小白来说,总体还算可以,不用学习算法就能做出来一半多。总结经验,学习算法,明年再战。
希望今年给我一个三等奖就好了。
呜呜呜,小白的要求很低。
2021第十二届蓝桥杯大赛软件赛省赛第二场C/C++B组题目加题解_第11张图片

你可能感兴趣的:(蓝桥杯笔记,c语言,编程语言,算法)