leetcode400.第N位数字(中等)

在这里插入图片描述
思路:模拟
找规律
1位数:1-9,一共9个数字
2位数:10-99,一共90个数字,即9 * 10 * (2 - 1)
3位数:100-999,一共900个数字,即9 * 10 * (3 - 1)
k位数,包括的位数一共有k * 9 * 10^(k - 1)位。
比如:找第490位是多少?
9 +180 < 490
9 + 180 + 2700 > 490,所以一定是个三位数。
490-9-180=301。
301/3=100,所以应该是在100+100+1=201这个数字上。
301%3=1,所以是在201的第一个数字,也就是2上面。所以结果是2。
注意的是:如果%k==0,则是在1…(k个0)+ 301/3的最后一个数字。
整理思路
1:确定是几位数
2:确定属于哪个数
3:确定是第几位

class Solution {
public:
    typedef long long ll;
    int findNthDigit(int n) {
		
		//确定是几位数
        ll k = 1;
        while (n > 9 * k * pow(10, num - 1)) {
            n -= 9 * k * pow(10, num - 1);
            k++;
        }
        //确定属于哪个数
        ll tmp = n / k; //num表示几位数
        ll nums = pow(10, k - 1) + tmp; 
        //确定是第几位
        ll yushu = n % k;
        if (!yushu) return (nums - 1) % 10; 
        string tmp2 = to_string(nums);
        return tmp2[n % k - 1] - '0'; //
    }
};

10的k次方: pow(10, k) ,用pow()函数
易错点:第一个数字对应的是下标0的值。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
社会的进步导致人们对于学习的追求永不止境,那么追求农业信息化的方式也从单一的田地教程变成了多样化的学习方式。多样化的学习方式不仅仅是需要人们智慧的依靠,还需要能够通过软件的加持进行信息化的价值体现。软件和系统的产生,从表面上来看是方便了某一行业和某一行业的用户,其实是从本质上来说是提高了社会的进步。就拿我们常见的出行而言,滴滴出行看似是为了打车和出行的人方便,但其实通过另外一种程度上来说,可以通过软件应用的调度和发展来为社会、城市出行的发展做出巨大的贡献。我们国家从最早的中国制造业演变到现在的“智造”,就是因为有软件信息系统的价值,能够将一些智慧的因素加入到制造的过程当中,而这一点就是软件系统来改变生产和现实的需求。在计算机时代日益发展的今天,计算机网络正快速融入这个社会的每一个领域。农业的发展是社会当中一种必有可少的方式。果树在种植和培养是直接影响果农及果商的发展,但在果树的资源管理方面还是有着很大的不同,所以信息多样化的果树管理方式很重要。在传统的果树资源管理上还有着很大的约束,为此开发和设计JSP杏种质资源管理系统,该系统内容丰富多彩,用户可以在线进行果杏树的资源查询等。本文还是使用JSP的方式来进行管理的,但在系统建设过程当中也考虑了许许多多信息安全的保护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值