蓝桥杯练习

即约分数

题目

思路

遍历所有的x,y,判断x/y是不是即越约分数。

代码

cpp 复制代码
#include <iostream>
using namespace std;
int gcd(int x,int y)
{
  int r;
  while(y!=0)
  {
  	r=x%y;
  	x=y;
  	y=r;
  }
  return x;
}
int main()
{
  // 请在此输入您的代码
  int sum=4039;//1/y和x/1都是
  for(int x=2;x<=2020;x++)
  {
    for(int y=2;y<=2020;y++)
    {
      int m=gcd(x,y);
      if(m==1) sum++;
    }
  }
  cout<<sum;
  return 0;
}

蛇形填数

题目

思路

设i为某个数所在行,j为某个数所在列。(i+j)为偶数时,蛇形矩阵往右上方走,(i+j)为奇数时,蛇形矩阵往左下方走。(20+20)为偶数,往右上方走。所以mat[20][20]=mat[39][1]+19=mat[38][1]+20=1+2+...+38+20;

代码

cpp 复制代码
#include <iostream>
using namespace std;
int main()
{
  // 请在此输入您的代码
  int sum=0;
  for(int i=1;i<=38;i++)
  sum+=i;
  sum+=20;
  cout<<sum;
  return 0;
}

七段码

题目

思路

总共七个二极管,每一个都可以选或不选,列举完七个二极管选或不选后,判断选好的二极管有没有连成一片(如果只选了一个那就不用判断)。

代码

cpp 复制代码
#include<iostream>
using namespace std;
int used[10];
int sum;
int num;//使用灯泡的数量
bool find(int n)
{//找有没有与n相邻的灯泡在使用
  switch (n)
  {
    case 1: if(used[2]||used[6]) return true; break;
    case 2: if(used[1]||used[3]||used[7]) return true;break;
    case 3: if(used[2]||used[4]||used[7]) return true;break;
    case 4: if(used[3]||used[5]) return true;break;
    case 5: if(used[4]||used[6]||used[7]) return true;break;
    case 6: if(used[1]||used[5]||used[7]) return true;break;
    case 7: if(used[2]||used[3]||used[5]||used[6]) return true;break;
  }
  return false;
}
void dfs(int depth)
{
  if(depth>7)
  {
    if(num==1)
    {
      sum++;
      return ;
    }
    for(int k=1;k<=7;k++)
    {
      if(used[k]==1&&!find(k))
      {//如果在使用的灯泡没有相邻灯泡在使用,那不符合。
        return ;
      }
    }
    sum++;
    return ;
  }
  //用这一个
  used[depth]=1;
  num++;
  dfs(depth+1);
  //不用这一个
  used[depth]=0;
  num--;
  dfs(depth+1);
}
int main()
{
  sum=0;
  num=0;
  dfs(1);
  cout<<sum;
}

结果

这个代码直接提交会超时,估计是递归次数太多,但是题目要求输出结果即可。所以我们可以在dev上先运行出结果,然后直接提交输出那个结果。

跑步锻炼

题目

思路

遍历2000.1.1到2020.10.1的每一天,周一或初一就+2,否则+1,最后输出。

代码

cpp 复制代码
#include <iostream>
using namespace std;
int main()
{
  // 请在此输入您的代码
  int sum=0;
  int year=2000,month=1,day=1;
  int week=6;
  int a[]={0,31,29,31,30,31,30,31,31,30,31,30,31};
  //2000,2004,2008,2012,2016,2020
  while(!(year==2020&&month==10&&day==2))
  {
    if(day==1||week==1){
      sum+=2;
    }else{
      sum+=1;
    }
    day++;
    if(week==7) week=1;
    else week++;
    week%=8;
    //跨月
    if(day==a[month]+1){
      //跨年
      if(month==12){
        month=0;//出去还会+变成1
        year++;
        if(year==2004||year==2008||year==2012||year==2016||year==2020) a[2]=29;
        else a[2]=28;
      }
      //跨越不跨年
      month++;
      day=1;
    }
  }
  cout<<sum;
  return 0;
}

结果

平方和

题目

思路

遍历1到2019计算平方和

代码

cpp 复制代码
#include <iostream>
using namespace std;
int main()
{
  // 请在此输入您的代码
  long long sum=14362;
  for(int i=41;i<=99;i++)
  {
    int a=i%10;
    int b=i/10;
    if(a==2||a==0||a==1||a==9||b==0||b==1||b==9||b==2)
    sum+=i*i;
  }
  for(long long i=100;i<=999;i++)
  {
    int a=i%10;
    int b=i/10%10;
    int c=i/100;
    if(a==2||a==0||a==1||a==9||b==2||b==0||b==1||b==9||c==2||c==0||c==1||c==9)
    sum+=i*i;
  }
  for(long long i=1000;i<=2019;i++)
  {
    int a=i%10;
    int b=i/10%10;
    int c=i/10/10%10;
    int d=i/1000;
    if(a==2||a==0||a==1||a==9||b==2||b==0||b==1||b==9||c==2||c==0||c==1||c==9||d==2||d==1||d==0||d==9)
    sum+=i*i;
  }
  cout<<sum;
  return 0;
}

结果

数列求值

题目

思路

从i=4开始遍历到20190324,维护前三项,遍历完成后输出第三项。

代码

cpp 复制代码
#include <iostream>
using namespace std;
int main()
{
  long long a=1,b=1,c=1,t;
  for(int i=4;i<=20190324;i++)
  {
    t=(a+b+c)%10000;
    a=b;  
    b=c;  
    c=t;
  }
  cout<<t;
  return 0;
}

结果

总结

蓝桥杯的题目主要考的是数学和枚举的能力。

相关推荐
pianmian13 小时前
python数据结构基础(7)
数据结构·算法
考试宝4 小时前
国家宠物美容师职业技能等级评价(高级)理论考试题
经验分享·笔记·职场和发展·学习方法·业界资讯·宠物
好奇龙猫5 小时前
【学习AI-相关路程-mnist手写数字分类-win-硬件:windows-自我学习AI-实验步骤-全连接神经网络(BPnetwork)-操作流程(3) 】
人工智能·算法
sp_fyf_20245 小时前
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-01
人工智能·深度学习·神经网络·算法·机器学习·语言模型·数据挖掘
香菜大丸6 小时前
链表的归并排序
数据结构·算法·链表
jrrz08286 小时前
LeetCode 热题100(七)【链表】(1)
数据结构·c++·算法·leetcode·链表
oliveira-time6 小时前
golang学习2
算法
面试鸭6 小时前
离谱!买个人信息买到网安公司头上???
java·开发语言·职场和发展
南宫生7 小时前
贪心算法习题其四【力扣】【算法学习day.21】
学习·算法·leetcode·链表·贪心算法
懒惰才能让科技进步7 小时前
从零学习大模型(十二)-----基于梯度的重要性剪枝(Gradient-based Pruning)
人工智能·深度学习·学习·算法·chatgpt·transformer·剪枝