领扣LintCode算法问题答案-1256. 第n个数位
发布日期:2021-06-30 17:10:33 浏览次数:2 分类:技术文章

本文共 953 字,大约阅读时间需要 3 分钟。

领扣LintCode算法问题答案-1256. 第n个数位

目录

1256. 第n个数位

描述

找出无限正整数数列1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, …中的第n个数位。

  • n是一个正整数,并且不会超出32位有符号整数的范围(n < 231)。

样例 1:

输入:3输出:3

样例 2:

输入:11输出:0解析:数字序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... 第11位是0

题解

public class Solution {
/** * @param n: a positive integer * @return: the nth digit of the infinite integer sequence */ public int findNthDigit(int n) {
// write your code here long b = 0; do {
b++; long count = b * 9 * (long) Math.pow(10, b - 1); if (n < count) {
break; } n -= count; } while (n > 0); long lastNum = (int) Math.pow(10, b - 1) - 1; long num = (n + (b - 1)) / b + lastNum; String str = String.valueOf(num); char c = str.charAt((int)((n + (b - 1)) % b)); return c - 48; }}

鸣谢

非常感谢你愿意花时间阅读本文章,本人水平有限,如果有什么说的不对的地方,请指正。

欢迎各位留言讨论,希望小伙伴们都能每天进步一点点。

转载地址:https://le-yi.blog.csdn.net/article/details/108907455 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:领扣LintCode算法问题答案-1266. 找不同
下一篇:领扣LintCode算法问题答案-1254. 左叶子的和

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月16日 10时17分36秒