【POJ No. 1019】数字序列 Number Sequence

news2024/11/14 0:38:17

【POJ No. 1019】数字序列 Number Sequence

北大OJ 题目地址

在这里插入图片描述

【题意】

给出单个正整数i ,编写程序以找到位于数字组S 1 , S 2 , …, Sk 序列中第i 位上的数字。每个组Sk 都由一系列正整数组成,范围为1~k ,一个接一个地写入。

序列的前80位数字如下:

11212312341234512345612345671234567812345678912345678910123456789101112345678910

在这里插入图片描述

【输入输出】

输入:

第1行包含一个整数t (1≤t ≤10),表示测试用例的数量。每个测试用例后都跟一行,包含单个整数i (1≤i ≤2, 147,483, 647)。

输出:

对每个测试用例,都单行输出第i 位上的数字。

【样例】

在这里插入图片描述

【思路分析】

在测试用例中,序列的第8位和第3位都是2:

在这里插入图片描述

将每个组都看作一个分块,每个组(分块)的长度都为a [i ]:当组内的每个数都由一位数字组成时,当前组的长度等于前一组的长度+1;当组内出现两位数10~99时,当前组的长度等于前一组的长度+2,以此类推。

  • 1 12 123 1234 12345 123456 1234567 12345678 123456789前一组的长度+1
  • 12345678910 1234567891011 123456789101112 …… 前一组的长度+2

a [i ]为第i 块的长度,sum[i ]为前i (包括i )块的总长度。

例如,查询第n 位上的数字,首先定位到第i 块,然后在当前块内查找具体的数k 。

在这里插入图片描述

k 可能是多位数,例如k =12406,如下图所示。

在这里插入图片描述

第pos位的数字应为k /10^(len-pos) =124,124%10=4。

【算法设计】

① 计算每一块的长度a [i ]及前i 块的总长度sum[i ]。

② 定位到第i 块,在块内查找第pos位所在的数k。

③ 数k 有可能是多位数,第pos位为k /(int)pow(10.0, len - pos)%10。

【算法实现】

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>

typedef long long LL;

const int maxn=40000;
LL a[maxn],sum[maxn];//a[i]为第i组的长度,sum[i]为前i(包括i)组的总长度

int main(){
    int i,j;
    sum[0]=a[0]=0;
    for(i=1;i<maxn;i++){
        a[i]=a[i-1]+(int)log10((double)i)+1;
        sum[i]=sum[i-1]+a[i];
    }
    int t,n;
    scanf("%d",&t);
    while(t--){
        scanf("%d",&n);
        i=0;
        while(sum[i]<n) i++;  //确定n在第i组
        int pos=n-sum[i-1];  //确定n在第i组的第pos个位置
        int len=0,k=0;
        while(len<pos){
            k++;
            len+=(int)log10((double)k)+1;
        }
        printf("%d\n", k/(int)pow(10.0,len-pos)%10);
    }
    return 0 ;
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/57649.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Sass扫码点餐源码 单门店多门店餐饮连锁扫码点餐外卖自提系统源码

智慧餐厅扫码点餐小程序系统源码 1. 开发语言&#xff1a;JAVA 2. 数据库&#xff1a;MySQL 3. 原生小程序 4. Sass 模式 5. 带调试视频 本套扫码点餐小程序系统支持多店铺&#xff0c;支持外卖&#xff0c;堂食&#xff0c;扫码点餐、预约桌号、订单语音提醒、会员营销、…

viewport视口的概念

viewport视口的概念 概念详见 MDN&#xff0c;我摘出来对比了下&#xff0c;如下图&#xff1a; 总结&#xff1a; viewport就是当前窗口的可视部分Visual Viewport 视觉视口 就是视口viewport中的可见部分 比如在mobile浏览器中&#xff0c;输入时&#xff0c;弹出的键盘&am…

屏幕开发学习 -- 迪文串口屏

一 前言 最近学习了一款基于图形化开发的屏幕&#xff0c;在摸索一周后&#xff0c;基本熟悉了这款产品的一个开发过程&#xff0c;今天给大家分享一下迪文串口屏和STM32如何建立通讯&#xff0c;有不足之处&#xff0c;还请见谅&#x1f601; 二 迪文屏介绍 1.选型 我用到的…

Ubuntu 20.04 安装NVIDIA显卡驱动+cuda 11.7+cudnn

Ubuntu 18.04 安装NVIDIA显卡驱动cuda 10.2cudnn本机环境1 相关查询命令一、Ubuntu 18.04 安装NVIDIA显卡驱动1、查看本机显卡能够配置的驱动信息2、安装显卡驱动3、测试nvidia driver是否安装成功二、Ubuntu 20.04 安装cuda 11.71、安装显卡驱动检查2、安装CUDA10.23、配置CUD…

了解世界杯赔率,让您运气更‘好‘(个人分享)

足球世界杯买球赢面计算前言理论基础实际计算用例&#xff1a;代码实现真实数据前言 此文是个人关于世界杯的一些浅显的看法&#xff0c;实际统计结果和计算方法有出入&#xff0c;可能原因&#xff1a;1&#xff09;数据量不够。2&#xff09;比赛双方差距够大导致的。但在双…

前端如何实现网页变灰功能?

今天来从前端的角度看看网页置灰是如何实现的&#xff0c;以及相关使用技巧&#xff01; 实现思路 先来看看一些主流网站是如何实现置灰的&#xff1a; BiliBili&#xff1a;淘宝&#xff1a;京东&#xff1a;掘金&#xff1a;可以看到&#xff0c;这些网站实现置灰的方式都…

计算机网络学习笔记(Ⅰ):计算机网络体系结构

目录 1 概述 1.1 基础概念 1.计算机网络 2.功能 3.组成 4.分类 1.2 标准化工作及相关组织 1.标准化工作 2.相关组织 1.3 性能指标 1.速率 2.带宽 3.吞吐量 4.时延 5.时延带宽积 6.往返时延RTT 7.利用率 2 计算机网络结构 2.1 分层结构 1.分层原则 2.分层结…

专业/户籍不限!腾讯/华为招聘提到的PMP证书!多行业适用

很多有项目管理需求的小伙伴&#xff0c;不知道学PMP到底需要了解些啥&#xff0c;除了考什么&#xff0c;还有就是在报考以及后续续证方面都是需要具体了解清楚的&#xff0c;特别是想要自学PMP的宝子们。这些一定要了解清楚。 这篇直接告诉你PMP的全部相关内容&#xff01;&…

[附源码]Python计算机毕业设计Django良辰之境影视评鉴系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;我…

Python实战案例,Streamlit+Plotly模块,Python制作销售数据可视化看板,展示分析一步到位

前言 今天给大伙介绍一个用Python制作销售数据大屏的方法。 Let’s start happily 开发工具 Python版本&#xff1a; 3.6.4 相关模块&#xff1a; Streamlit模块 Plotly模块 pandas模块 环境搭建 安装Python并添加到环境变量&#xff0c;pip安装需要的相关模块即可。…

【大数据入门核心技术-Zookeeper】(一)Zookeeper基本原理

目录 一、Zookeeper是用来做什么的 二、Zookeeper的角色 1、Leader 2、Follower 3、Observer 一、Zookeeper是用来做什么的 首先需要了解zookeeper是什么&#xff0c;zookeeper是一个分布式协调服务。所谓分布式协调主要是来解决分布式系统中多个进程之间的同步限制&#…

[附源码]计算机毕业设计JAVA学生档案管理系统论文

[附源码]计算机毕业设计JAVA学生档案管理系统论文 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM my…

[附源码]Python计算机毕业设计SSM酒店停车管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

[附源码]Python计算机毕业设计Django海滨学院学生大创项目申报与审批系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

微服务框架 SpringCloud微服务架构 10 使用Docker 10.5 容器命令案例2

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构10 使用Docker10.5 容器命令案例210.5.1 直接开干10.5.2 总结10 使用Docke…

【Matplotlib绘制图像大全】(六):Matplotlib使用subplot()绘制多个子图

前言 大家好,我是阿光。 本专栏整理了《Matplotlib绘制图像大全》,内包含了各种常见的绘图方法,以及Matplotlib各种内置函数的使用方法,帮助我们快速便捷的绘制出数据图像。 正在更新中~ ✨ 🚨 我的项目环境: 平台:Windows10语言环境:python3.7编译器:PyCharmMatp…

【博客550】k8s乐观锁机制:控制并发请求与数据一致性

k8s乐观锁机制&#xff1a;控制并发请求与数据一致性 1、乐观锁与悲观锁 悲观锁 悲观并发控制&#xff08;又名“悲观锁”&#xff0c;Pessimistic Concurrency Control&#xff0c;缩写“PCC”&#xff09;是一种并发控制的方法。它可以阻止一个事务以影响其他用户的方式来修…

Compose 动画艺术探索之动画规格

本篇文章是此专栏的第四篇文章&#xff0c;如果想阅读前三篇文章的话请点击下方链接&#xff1a; Compose 动画艺术探索之瞅下 Compose 的动画Compose 动画艺术探索之可见性动画Compose 动画艺术探索之属性动画 动画规格在上一篇文章中提到过&#xff0c;不过上一篇文章中说的…

AIGC , 超级热点 or 程序员创富新起点?

作者 | 闫辉 责编 | 朱珂欣出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;对于程序员而言&#xff0c;常常能在新赛道上创造出无限的奇迹。随着今年 8 月 Stable Diffusion&#xff08;SD&#xff09;的正式开源&#xff0c;AI-Generated Content&#…

46. 全排列

一次一粒沙&#xff0c;一次一件事。 ——《人性的优点》 46. 全排列 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],…