当前位置: 首页 > news >正文

蓝桥杯填空题攻克

目录

1.握手问题(条件枚举)

2.门牌制作(十进制整数拆解)

3.九进制转十进制(进制转换)

 一.a 进制数转换为十进制数

二.十进制转换为a进制

4.跑步(日期问题)


1.握手问题(条件枚举)

 简单的条件枚举

假设前7个人,不互相握手,其他人互相握手

#include <iostream>
using namespace std;
int main()
{
  // 请在此输入您的代码
  int ret=0;
  for(int i=1;i<=50;i++)
  {
    for(int j=i+1;j<=50;j++)
    {
      if(i<=7 && j<=7) continue;
      else ret++;
    }
  }
  cout<<ret<<endl;
  return 0;
}

2.门牌制作(十进制整数拆解)

 

 所谓十进制整数拆解,就是将一个十进制整数x按照十进制拆解除每一位

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int count=0;
  for(int i=1;i<=2020;i++)
  {
    for(int j=i;j>0;j=j/10)
    {
      if(j%10==2)
      {
      count++;
      }
    }
  }
  printf("%d",count);
  // 请在此输入您的代码
  return 0;
}

3.九进制转十进制(进制转换)

 一.a 进制数转换为十进制数

计算方式是把每一位上的数字乘以该位的权重,再将所有结果相加,最终得到对应的十进制数。

例如对于一个二进制数101,转换成十进制过程为:

=1×2^2+0×2^1+1×2^0

=4+0+1

=5​

二.十进制转换为a进制

例如,将十进制数 13 转换为二进制数(a = 2)的过程:

  • 第 1 步:13 ÷ 2 = 6...1,余数为 1。
  • 第 2 步:6 ÷ 2 = 3...0,余数为 0。
  • 第 3 步:3 ÷ 2 = 1...1,余数为 1。
  • 第 4 步:1 ÷ 2 = 0...1,余数为 1。

将余数从下往上排列结果为1101,因为取余顺序与结果相反,所以使用队列的先进先出,每次取余将结果压入队列

#include<bits/stdc++.h>
using namespace std;

//将 a 进制数 num 转换为十进制数
int convertother(int a, int num)
{
    int b = 0;
    int ret = 0;
    int i = 0;
    // 当 num 大于 0 时,说明还有位需要处理,继续循环
    while(num > 0)
    {
        // 通过取余运算得到 num 的最低位数字
        b = num % 10;
        // 将 num 除以 10,去掉已经处理过的最低位
        num /= 10;
        // 把当前位数字 b 乘以 a 的 i 次幂,累加到结果 ret 中
        ret += b * pow(a, i);
        i++;
    }
    return ret;
}

//将十进制数 num 转换为 a 进制数
int convert2other(int a, int num)
{
    int b = 0;
    // 变量 ret 用于存储最终转换得到的 a 进制结果
    int ret = 0;
    // 变量 i 作为指数,用于表示当前位对应的 10 的幂次
    int i = 0;
    queue<int> mod;
    // 当 num 大于 0 时,继续进行除 a 取余操作
    while(num > 0)
    {
        // 计算 num 除以 a 的余数
        b = num % a;
        // 将 num 除以 a 并取整
        num /= a;
        // 把余数 b 压入队列 mod 中
        mod.push(b);
    }
    while(!mod.empty)
    {
        // 取出队列的队首元素
        b = mod.front();
        // 把队首元素乘以 10 的 i 次幂,累加到结果 ret 中
        ret += b * pow(10, i);
        // 指数 i 加 1,为处理下一位做准备
        i++;
    }
    return ret;
}

int main()
{
    int a = 9;
    int num = 2022;
    int s = convertother(a, num);
    cout << s << endl;
    return 0;
}

4.跑步(日期问题)

考点:

  1. 判断闰年
  •       if(y % 4==0 && y % 100!=0 && m==2 || y%400==0 && m==2) 
  1. 日期的遍历,一个日期到另一个日期的遍历
  2. 星期的判断,如某天是星期几
#include <iostream>
using namespace std;
int ds[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int main()
{
  // 请在此输入您的代码

  int sy=2022;
  int ey=2022;
  int week=6;
  int ans=0;
  for(int y=sy;y<=ey;++y)//枚举年
  {
    for(int m=1;m<=12;++m)//枚举月
    {
      int dd=ds[m];
      //判断闰年
      if(y % 4==0 && y % 100!=0 && m==2 || y%400==0 && m==2) 
        dd=29;
      for(int d=1;d<=dd;++d)//枚举日
      {
        if(week==0 || week==6 || d%10==1) ans++;//判断是否满足题目
        week=(week+1)%7;//向后推移星期几
      }
    }
  }
  cout<<ans<<endl;
  return 0;
}

谢谢

http://www.dtcms.com/a/122525.html

相关文章:

  • 【C++】二叉搜索树(二叉查找树、二叉排序树)详解
  • Go 微服务框架 | 路由实现
  • 【BFT帝国】20250409更新PBFT总结
  • idea手动创建resources文件夹
  • checkra1n越狱出现的USB error -10问题解决
  • 面向数据库场景的大模型交互微调数据集
  • Flutter命令行打包打不出ipa报错
  • IDEA 2024 Maven 设置为全局本地仓库,避免新建项目重新配置maven
  • MySQL MVCC 机制详解
  • 大数据 - 1. 概述
  • 第一章初识爬虫
  • 【力扣hot100题】(079)划分字母区间
  • vue3.2 +vxetable4.6 渲染大数据列,出现错乱问题处理方案
  • BabelDOC ,开源的 AI PDF 翻译工具
  • 20250409-大数据-python数据处理平台/接口平台(DFF)
  • 基于cartographer 1.0.0 不使用ros 使用激光雷达数据和IMU数据融合实现的建图
  • Redis的Spring客户端的使用
  • Android系统深度定制:源码级拦截adb install的完整解决方案
  • Windows 11 家庭中文版 安装docker desktop 无法开启自启动问题处理
  • matlab内置的git软件版本管理功能
  • CSS AI 通义灵码 VSCode插件安装与功能详解
  • MySQL学习笔记十四
  • 安徽京准:NTP网络时钟服务器功能及同步模式的介绍
  • oracle将varchar2 转为clob类型存储。 oracle不支持直接使用sql,将 varchar2 到clob的类型转换,需要下面操作
  • Java + WebAssembly 2025:如何用Rust优化高性能Web应用?
  • proteus OLED12864仿真
  • centos 安装python3.9.9
  • Jupyter Lab 无法启动 Kernel 问题排查与解决总结
  • 山东大学软件学院项目创新实训开发日志(8)之数据库建表
  • 从响应式编程到未来架构革命:解锁高并发时代的底层思维范式