本文共 987 字,大约阅读时间需要 3 分钟。
class Solution { public int findNthDigit(int n) { int i=1; int temp=getNumber(i); int bef = 0; while(temp<=n) { //这里是为了防止溢出做的处理 if(i==9) break; i++; bef=temp; temp=getNumber(i); } //此时i的值为接下来的数字的位数 // System.out.println("i: "+i); int rest = n-bef;//差的位数 int start = (int)java.lang.Math.pow(10,i-1); int num = rest/i;//还需要几位i位数 start+=num; int r = rest%i;//还需要几个数字 if(r>0) return getN(start,r,i); else return getN(start-1,i,i); } public int getN(int start,int k,int i)//获取数字start的第k个数,i是其位数 { int N=0; for(int t=i-1;t>=i-k;t--) { N = start/(int)java.lang.Math.pow(10,t); start %=(int)java.lang.Math.pow(10,t); } return N; } public int getNumber(int n) { int sum =0; for(int i=0;i
转载地址:http://lslzi.baihongyu.com/