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. 关于 XML 头声明和standalone 的解释

    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <roo ...

  2. vue-router与v-if实现tab切换的思考

    vue-router 该如何使用 忽然碰到一个常见的问题,明明可以使用 v-if / v-show 可以的解决的问题,有没有必要是使用 vue-router来解决. 比如常见的 tab 切换.一时间, ...

  3. poj 3744 概率dp 快速幂 注意排序 难度:2

    /* Scout YYF I Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5304   Accepted: 1455 De ...

  4. bzoj1074

    题意: 给你n次折叠 m个询问 每次询问折叠后,xi,yi有几层 题解: 计算几何 模拟 #include<cstdio> #include<cstdlib> #include ...

  5. Qt Creatror使用designer修改了界面但是编译无反应的解决方法

    这个问题主要是UI没有更新导致的,根治的方法为: 项目中的.pro内增加 UI_DIR=./UI,同时删除掉源代码目录中ui_*.h,clear all,->qmake->rebuilt ...

  6. Hadoop生态系统介绍

    Hadoop生态系统Hadoop1.x 的各项目介绍1. HDFS2. MapReduce3. Hive4. Pig5. Mahout6. ZooKeeper7. HBase8. Sqoop9. Fl ...

  7. Python3 列表List(十一)

    list是一种有序可重复的集合,可以随时添加和删除其中的元素. 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. ...

  8. L180

    The cylinder is a crucial part of the washing machine His debonair dismissal of my inquiry concernin ...

  9. LG4719 【模板】动态dp 及 LG4751 动态dp【加强版】

    题意 题目描述 给定一棵\(n\)个点的树,点带点权. 有\(m\)次操作,每次操作给定\(x,y\),表示修改点\(x\)的权值为\(y\). 你需要在每次操作之后求出这棵树的最大权独立集的权值大小 ...

  10. Python协程 Gevent Eventlet Greenlet

    https://zh.wikipedia.org/zh-cn/%E5%8D%8F%E7%A8%8B 协程可以理解为线程中的微线程,通过手动挂起函数的执行状态,在合适的时机再次激活继续运行,而不需要上下 ...