public class Solution {
public int FindNthDigit(int n)
{
//StringBuilder sb = new StringBuilder();
//for (int i = 1; i < int.MaxValue; i++)
//{
// if (sb.Length < n)
// {
// sb.Append(i);
// }
// else
// {
// break;
// }
//} //var k = sb.Length; //var s = sb.ToString().Substring(n - 1, 1);
//var result = Convert.ToInt32(s);
//return result; var result = ; if (n >= && n <= )//0~9
{
var dif = n - ;
var shang = dif;
var yu = ; var basic = ( + shang).ToString();
result = Convert.ToInt32(basic.Substring(yu, ));
//9*1
}
else if (n >= && n <= )//10~99
{
var dif = n - ;
var shang = dif / ;
var yu = dif % ;
var next = ;
if (yu > )
{
next = ;
}
var basic = ( + shang + next).ToString();
if (yu > )
{
result = Convert.ToInt32(basic.Substring(yu - , ));
}
else
{
result = Convert.ToInt32(basic.Substring(basic.Length - , ));
}
//89*2
}
else if (n >= && n <= )//100~999
{
var dif = n - ;
var shang = dif / ;
var yu = dif % ;
var next = ;
if (yu > )
{
next = ;
}
var basic = ( + shang + next).ToString();
if (yu > )
{
result = Convert.ToInt32(basic.Substring(yu - , ));
}
else
{
result = Convert.ToInt32(basic.Substring(basic.Length - , ));
}
//899*3
}
else if (n >= && n <= )//1000~9999
{
var dif = n - ;
var shang = dif / ;
var yu = dif % ;
var next = ;
if (yu > )
{
next = ;
}
var basic = ( + shang + next).ToString();
if (yu > )
{
result = Convert.ToInt32(basic.Substring(yu - , ));
}
else
{
result = Convert.ToInt32(basic.Substring(basic.Length - , ));
}
//8999*4
}
else if (n >= && n <= )//10000~99999
{
var dif = n - ;
var shang = dif / ;
var yu = dif % ;
var next = ;
if (yu > )
{
next = ;
}
var basic = ( + shang + next).ToString();
if (yu > )
{
result = Convert.ToInt32(basic.Substring(yu - , ));
}
else
{
result = Convert.ToInt32(basic.Substring(basic.Length - , ));
}
//89999*5
}
else if (n >= && n <= )//100000~999999
{
var dif = n - ;
var shang = dif / ;
var yu = dif % ;
var next = ;
if (yu > )
{
next = ;
}
var basic = ( + shang + next).ToString();
if (yu > )
{
result = Convert.ToInt32(basic.Substring(yu - , ));
}
else
{
result = Convert.ToInt32(basic.Substring(basic.Length - , ));
}
//899999*6
}
else if (n >= && n <= )//1000000~9999999
{
var dif = n - ;
var shang = dif / ;
var yu = dif % ;
var next = ;
if (yu > )
{
next = ;
}
var basic = ( + shang + next).ToString();
if (yu > )
{
result = Convert.ToInt32(basic.Substring(yu - , ));
}
else
{
result = Convert.ToInt32(basic.Substring(basic.Length - , ));
}
//8999999*7
}
else if (n >= && n <= )//10000000~99999999
{
var dif = n - ;
var shang = dif / ;
var yu = dif % ;
var next = ;
if (yu > )
{
next = ;
}
var basic = ( + shang + next).ToString();
if (yu > )
{
result = Convert.ToInt32(basic.Substring(yu - , ));
}
else
{
result = Convert.ToInt32(basic.Substring(basic.Length - , ));
}
//89999999*8
}
else if (n >= && n <= int.MaxValue)//100000000~999999999
{
var dif = n - ;
var shang = dif / ;
var yu = dif % ;
var next = ;
if (yu > )
{
next = ;
}
var basic = ( + shang + next).ToString();
if (yu > )
{
result = Convert.ToInt32(basic.Substring(yu - , ));
}
else
{
result = Convert.ToInt32(basic.Substring(basic.Length - , ));
}
//899999999*9
} return result;
}
}

https://leetcode.com/problems/nth-digit/#/description

leetcode400的更多相关文章

  1. [Swift]LeetCode400. 第N个数字 | Nth Digit

    Find the nth digit of the infinite integer sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... Note:n is ...

随机推荐

  1. NYOJ 720 DP+二分

    项目安排 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 小明每天都在开源社区上做项目,假设每天他都有很多项目可以选,其中每个项目都有一个开始时间和截止时间,假设做完每个 ...

  2. 数论练习(5)——青蛙的约会(扩gcd)

    青蛙的约会 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 122502   Accepted: 26015 Descript ...

  3. vue触底,触顶事件

    data(){ return{ songList: [], //歌单列表 totalPage: "", total: "", pageSize: 10, thi ...

  4. bzoj2843&&1180

    题解: lct 和上一题差不多 这一题还要判断是否有链接 其实直接并查集判断就可以了 代码: #pragma GCC optimize(2) #include<bits/stdc++.h> ...

  5. LINUX中的RCU机制的分析

    RCU机制是Linux2.6之后提供的一种数据一致性访问的机制,从RCU(read-copy-update)的名称上看,我们就能对他的实现机制有一个大概的了解,在修改数据的时候,首先需要读取数据,然后 ...

  6. <NET CLR via c# 第4版>笔记 第10章 属性

    10.1 无参属性 10.1.1 自动实现的属性 10.1.2 合理定义属性 属性可以只读或只写,而字段访问总是可读和可写的(一个例外是 readonly 字段仅在构造器中可写). 属性方法可能抛出异 ...

  7. 201621123005《Java程序设计》第九次实验总结

    201621123005<Java程序设计>第九周实验总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 1.2 选做:收集你认为有用的代码片段 ...

  8. jquery3.1.1报错Uncaught TypeError: a.indexOf is not a function

    jquery3.1.1报错Uncaught TypeError: a.indexOf is not a function 使用1.9就没有问题,解决办法: 就是把写的代码中: $(window).lo ...

  9. BZOJ5312: 冒险【线段树】【位运算】

    Description Kaiser终于成为冒险协会的一员,这次冒险协会派他去冒险,他来到一处古墓,却被大门上的守护神挡住了去路,守护神给出了一个问题, 只有答对了问题才能进入,守护神给出了一个自然数 ...

  10. 离散数学:用C语言来判断集合存在的二元关系

    用C语言来判断是否满足自反,反自反,非自反,对称,反对称,非对称和传递性 也不知道写的对不对.没有大量验证,但是随便找的一些关系测试的没毛病,如果错了,欢迎各位大佬留言 #include<bit ...