首页 > 其他分享 >剑指 Offer 44. 数字序列中某一位的数字(中等)

剑指 Offer 44. 数字序列中某一位的数字(中等)

时间:2023-09-02 21:11:05浏览次数:41  
标签:digits index 数字 Offer int 44 number base 位数

题目:

class Solution {      //本题单纯找规律,要注意通过n%digits来判断有几个位数为digits的数
public:
    int findNthDigit(int n) {
        long base = 9, digits = 1;      //digits代表位数
        while(n-base*digits>0){      //该循环是为了确定目标数字所在数number是几位数的
            n-=base*digits;
            base*=10;
            digits++;
        }

        int index = n%digits;      //确定目标数字是在number的第几位
        if(index==0) index=digits;      //如果余数为0,说明是**有n/digits个**位数为digits的数,index此时是第n/digits个数的最后一位;否则就是**有n/digits+1个**位数为digits的数
        long number = 1;
        number=pow(10, digits-1);      //这是位数为digits的第一个数,所以下面计算偏移次数的时候要-1
        number += (index==digits ? n/digits-1 :n/digits);      //计算偏移次数,即算出number的值

        for(int i=index;i<digits;i++) number/=10;      //要/digits-index次,最后取余就是目标数字
        return number%10;
    }
};

作者:腐烂的橘子
链接:https://leetcode.cn/problems/shu-zi-xu-lie-zhong-mou-yi-wei-de-shu-zi-lcof/solutions/96378/zhe-shi-yi-dao-shu-xue-ti-ge-zhao-gui-lu-by-z1m/
来源:力扣(LeetCode)

标签:digits,index,数字,Offer,int,44,number,base,位数
From: https://www.cnblogs.com/fly-smart/p/17674206.html

相关文章

  • 443A - Anton and Letters
    A.AntonandLettershttps://codeforces.com/problemset/problem/443/ARecently,Antonhasfoundaset.ThesetconsistsofsmallEnglishletters.Antoncarefullywroteoutallthelettersfromthesetinoneline,separatedbyacomma.Healsoaddedanope......
  • 智慧工地施工数字化平台 工程项目管理平台
    智慧工地平台源码智慧工地整体解决方案以智慧工地物联网云平台为核心,基于智慧工地物联网云平台与现场多个子系统的互联,实现现场各类工况数据采集,存储、分析与应用。通过接入智慧工地物联网云平台的多个子系统板块,根据现场管理实际需求灵活组合,实现一体化、模块化、智能化、网络化的......
  • 2023 腾讯全球数字生态大会,腾讯云研发效能创新与实践专场来啦!
    点击链接了解详情......
  • 剑指 Offer 48. 最长不含重复字符的子字符串 java
    请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例1:输入:"abcabcbb"输出:3解释:因为无重复字符的最长子串是"abc",所以其长度为3。示例2:输入:"bbbbb"输出:1解释:因为无重复字符的最长子串是"b",所以其长度为1。示例3:输入......
  • 剑指 Offer 14- II. 剪绳子 II(中等)
    题目:classSolution{//本题用贪心算法,拆成尽可能多的3且不可以出现长度为1的小段。用dp会溢出,放弃吧public:intcuttingRope(intn){if(n==2)return1;if(n==3)return2;if(n==4)return4;longlongres=1;......
  • Spring Cloud工程项目数字化管理云平台源码,PC端(监管平台、项目管理平台)、H5移动端、数
    技术架构:微服务+Java+SpringCloud+Vue+UniApp+MySql开发语言:Java开发工具:Idea前端框架:Vue后端框架:SpringCloud数据库:MySql移动端:UniApp系统端口:PC端(监管平台、项目管理平台)、H5移动端、数据大屏端PC项目管理端数据大屏端智慧工地云平台系统功能:1、基础数据管理提供对各个建......
  • 剑指 Offer 48. 最长不含重复字符的子字符串
    请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。 示例 1:"abc",所以其示例2:"b"示例3:"wke""pwke" 提示:s.length<=40000使用滑动窗口,哈希表来记录:classSolution{publicintlengthOfLongestSubstring(Strings){HashMap<Ch......
  • 数字化工厂的核心设备ARM控制器BL304
    嵌入式ARM控制器BL304系列是一款专为工业控制领域设计的坚固型工控设备。它采用NXP公司的处理器I.MX8MMini四核64位处理器,搭配四核Cortex-A53+单核Cortex-M4构架,运行速度高达1.8GHz,具有高度的稳定性和可靠性。处理器是嵌入式控制器的核心部件,NXP的I.MX8MMini处理器是一款强大的......
  • P4344 SHOI2015 脑洞治疗仪
    \(P4344\)[\(SHOI2015\)]脑洞治疗仪一、题目描述曾经发明了自动刷题机的发明家\(SHTSC\)又公开了他的新发明:脑洞治疗仪——一种可以治疗他因为发明而日益增大的脑洞的神秘装置。为了简单起见,我们将大脑视作一个\(01\)序列。\(1\)代表这个位置的脑组织正常工作,\(0\)代表......
  • 解决方案 | tk.entry数字验证(输入框如何保证只能输入数字)
      fromtkinterimport*root=Tk()#创建文本框entry=Entry(root)entry.pack()#设置文本框只能输入数字entry.config(validate="key",validatecommand=(root.register(lambdaP:P.isdigit()orP==""),"%P",),)root.mainlo......