蓝桥杯每日真题 - 第8天

ops/2024/11/15 1:36:36/

题目:(子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.ppmy.cn/ops/133735.html

相关文章

反向代理模块开发

1 概念 1.1 反向代理概念 反向代理是指以代理服务器来接收客户端的请求&#xff0c;然后将请求转发给内部网络上的服务器&#xff0c;将从服务器上得到的结果返回给客户端&#xff0c;此时代理服务器对外表现为一个反向代理服务器。 对于客户端来说&#xff0c;反向代理就相当…

golang将word、excel转换为pdf

用golang写一个word/excel/ppt转pdf的工具 知识分享之Golang——一个常见word、excel转换pdf的工具函数-腾讯云开发者社区-腾讯云 使用 LibreOffice 将 word 转化为 pdf 并解决中文乱码问题_liboffice doc 转 pdf 乱码-CSDN博客(如果依旧失败可能需要重启LibreOffice)

C#版使用融合通信API发送手机短信息

目录 功能实现 范例运行环境 实现范例 类设计 类代码实现 调用范例 总结 功能实现 融合云通信服务平台&#xff0c;为企业提供全方位通信服务&#xff0c;发送手机短信是其一项核心功能&#xff0c;本文将讲述如何使用融合云服务API为终端手机用户发送短信信息&#xf…

前端Cypress自动化测试全网详解

Cypress 自动化测试详解&#xff1a;从安装到实战 Cypress 是一个强大的端到端&#xff08;End-to-End, E2E&#xff09;功能测试框架&#xff0c;基于 Node.js 构建&#xff0c;支持本地浏览器直接模拟测试&#xff0c;并具有测试录屏功能&#xff0c;极大地方便了测试失败时的…

3D意识(3D Awareness)浅析

一、简介 3D意识&#xff08;3D Awareness&#xff09;主要是指视觉基础模型&#xff08;visual foundation models&#xff09;对于3D结构的意识或感知能力&#xff0c;即这些模型在处理2D图像时是否能够理解和表示出图像中物体或场景的3D结构&#xff0c;其具体体现在编码场景…

python视频事物分析

使用 OpenCV 和 Hugging Face 的transformers库中的预视视觉模型来分析视频内容 依赖库 pip install opencv-python transformers torch代码 import cv2 import torch from transformers import pipeline# 加载预训练的目标检测模型 detector pipeline("object-detect…

GDSC、CTRP数据库学习

GDSC 写在前面下载数据疑问1.GDSC、CTRP数据里有TCGA配套的数据&#xff1f;数据类型&#xff1f;CTRP原始数据如何处理 写在前面 开此贴做GDSC的数据分析记录 下载数据 GDSC官网&#xff1a;http://www.cancerrxgene.org/ 由于在官网下载数据过于麻烦&#xff0c;于是我使用…

2024 年(第 7 届)“泰迪杯”数据分析技能赛B 题 特殊医学用途配方食品数据分析 完整代码 结果 可视化分享

一、背景特殊医学用途配方食品简称特医食品&#xff0c;是指为满足进食受限、消化吸收障碍、代谢素乱或者特定疾病状态人群对营养素或者膳食的特殊需要&#xff0c;专门加工配置而成的配方食品&#xff0c;包括0月龄至12月龄的特殊医学用途婴儿配方食品和适用于1岁以上的特殊医…