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

蓝桥杯每日真题 - 第8天

题目:(子2023)

题目描述(14届 C&C++ B组A题)

解题思路:

该代码通过动态计算包含数字 "2023" 的子序列出现次数。主要思路是:

  1. 拼接序列:将1到2023的所有数字按顺序拆分为单个数字,并存储在数组arr中。

  2. 统计“2023”子序列:遍历数组中的数字,使用计数器分别记录数字203的累积出现次数,并通过组合计算出符合条件的 "2023" 子序列。

代码实现(C语言):

#include <stdio.h>
#include <stdlib.h>
long long solve(long long i)
{long long sum=1;while(i/=10)sum++;return sum;
}
int main(int argc, char *argv[])
{long long i,j,n=0,a=0,b=0,c=0,d=0;long long arr[10000];for(i=1;i<=2023;i++){int I=i;int T=solve(i);for(j=T;j>0;j--){arr[n+j]=I%10;I/=10;}n+=T;}for(i=1;i<=n;i++){if(arr[i]==2){a++;c+=b;}else if(arr[i]==0)b+=a;else if(arr[i]==3)d+=c;}printf("%lld",d);return 0;
}

得到运行结果:

代码分析 :

  • solve() 函数:计算一个数字的位数。通过不断除以10来计算位数。例如,2023 返回 4

  • main() 函数:

    • 序列拼接

      • 使用 for 循环,将1到2023的每个数字按位拆分,逐位存储在数组arr中。

      • T = solve(i); 获取当前数字的位数。

      • arr[n+j] = I % 10; 用于将每个位的数字逆序插入到 arr 中,直到数字 i 拆解完。

      • n += T; 更新当前已填充的总长度。

    • 查找“2023”子序列

      • 遍历 arr 数组,依次检查每个位置的数字。

      • a:累计每次遇到的数字 2 的数量。

      • b:累计每次遇到的数字 0 前面有多少个数字 2

      • c:累计每次遇到的数字 3 前面符合 20 序列的次数。

      • d:记录完整的 2023 子序列的数量。

  • printf("%lld", d);:输出符合条件的子序列总数。

难度分析

⭐️⭐️ 

总结

本代码通过逐位遍历和计数器的方式实现了"2023"子序列的统计。此算法无需存储完整的字符串,通过位置的动态更新提高了效率。

http://www.lryc.cn/news/483994.html

相关文章:

  • 论云游戏的性能与性价比,ToDesk、青椒云、顺网云游戏等具体实操看这篇就够了
  • Jmeter中的定时器(二)
  • 华为HCIP-openEuler考试内容大纲:备考必看!
  • Vector 深度复制记录
  • Go语言实现用户登录Web应用
  • Android CarrierConfig 参数项和正则匹配逻辑
  • 微信小程序中使用离线版阿里云矢量图标
  • hive的tblproperties支持修改的属性
  • 移动端开发
  • 光伏行业内卷到什么程度了?
  • C# 通俗易懂的介绍基础知识(七)——栈Stack(从日常生活开始讲解)
  • 学习threejs,使用第一视角控制器FirstPersonControls控制相机
  • odoo17 前端 在头像下拉 dropdown 自定义菜单
  • 如何管理好自己的LabVIEW项目
  • GPT-5 要来了:抢先了解其创新突破
  • @ComponentScan:Spring Boot中的自动装配大师
  • uniapp 面试题总结常考
  • 花了36元给我的个人博客上了一道防御
  • 浅谈C++之内存管理
  • 719. 找出第 K 小的数对距离
  • 【图像压缩感知】论文阅读:Self-supervised Scalable Deep Compressed Sensing
  • Swift 宏(Macro)入门趣谈(一)
  • linux常见资源查询命令(持续更新)
  • JavaWeb:文件上传1
  • C++ 中的异常处理机制是怎样的?
  • SwiftUI-基础入门
  • C++builder中的人工智能(20):如何在C++中开发一个简单的Hopfield网络
  • video2gif容器构建指南
  • 探秘Spring Boot中的@Conditional注解
  • 树形dp总结