From be31a575cdd0d7f8c164207143fde85c743c13fd Mon Sep 17 00:00:00 2001 From: HendSame <154903157@qq.com> Date: Fri, 10 Apr 2020 23:12:18 +0800 Subject: [PATCH 1/5] add Nth Digit --- solution/0400-0499/0400.Nth Digit/Solution.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 solution/0400-0499/0400.Nth Digit/Solution.java diff --git a/solution/0400-0499/0400.Nth Digit/Solution.java b/solution/0400-0499/0400.Nth Digit/Solution.java new file mode 100644 index 0000000000000..e69de29bb2d1d From 5f6ca51850e3a3e8a8e5d376b896b06d9b867ace Mon Sep 17 00:00:00 2001 From: HendSame <154903157@qq.com> Date: Sat, 11 Apr 2020 21:48:10 +0800 Subject: [PATCH 2/5] add Nth Digit --- .../0400-0499/0400.Nth Digit/Solution.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/solution/0400-0499/0400.Nth Digit/Solution.java b/solution/0400-0499/0400.Nth Digit/Solution.java index e69de29bb2d1d..de61e0ede4bb6 100644 --- a/solution/0400-0499/0400.Nth Digit/Solution.java +++ b/solution/0400-0499/0400.Nth Digit/Solution.java @@ -0,0 +1,30 @@ +class Solution { + public int findNthDigit(int n) { + /*** + * 12345678910111213 + * 规律个位数9个数一共有9*1,两位数90个数 一共有90*2个数字,三位数有900个数一共有900*3个数字,以此类推 + * 举例15,15-9=6,6/2=3...0,余数是0,那么这个数值value=10*(2-1)+(3-1)=12,整除取最后一位 12%10=2 + * 举例14,14-9=5,5/2=2...1,余数不为0,那么这个数值value=10*(2-1)+2=12,则为这个数的第余数个 12/(10*(2-1))%10=1 + */ + long max = 9; + long num = n; + long digits = 1;//是几位数 + while (n > 0) { + if (num - max * size > 0) { + num = num - max * size; + digits++; + max = max * 10; + } else { + long count = num / digits; + long childDigits = num % digits; + if (childDigits == 0) { + return (int) (((long) Math.pow(10, digits - 1) + count - 1) % 10); + } else { + return (int) (((long) Math.pow(10, digits - 1) + count) / ((long) Math.pow(10, (digits - childDigits))) % 10); + } + } + } + return 0; + + } +} \ No newline at end of file From 0fea67e3edabec5d7ad3602285992114cf6e7fbb Mon Sep 17 00:00:00 2001 From: HendSame <154903157@qq.com> Date: Sun, 12 Apr 2020 21:02:43 +0800 Subject: [PATCH 3/5] update --- .../0400-0499/0400.Nth Digit/Solution.java | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/solution/0400-0499/0400.Nth Digit/Solution.java b/solution/0400-0499/0400.Nth Digit/Solution.java index de61e0ede4bb6..235a02e5e745d 100644 --- a/solution/0400-0499/0400.Nth Digit/Solution.java +++ b/solution/0400-0499/0400.Nth Digit/Solution.java @@ -6,17 +6,18 @@ public int findNthDigit(int n) { * 举例15,15-9=6,6/2=3...0,余数是0,那么这个数值value=10*(2-1)+(3-1)=12,整除取最后一位 12%10=2 * 举例14,14-9=5,5/2=2...1,余数不为0,那么这个数值value=10*(2-1)+2=12,则为这个数的第余数个 12/(10*(2-1))%10=1 */ - long max = 9; - long num = n; - long digits = 1;//是几位数 - while (n > 0) { - if (num - max * size > 0) { - num = num - max * size; + long max=9; + long num=n; + long digits=1; + while (n>0) { + if(num-max*digits>0) { + num=num-max*digits; digits++; - max = max * 10; - } else { - long count = num / digits; - long childDigits = num % digits; + max=max*10; + }else { + long count=num/digits; + long childDigits=num%digits; + long value=(long)Math.pow(10,digits-1)+count-1; if (childDigits == 0) { return (int) (((long) Math.pow(10, digits - 1) + count - 1) % 10); } else { From ccc4a2e54d6f7f24e1976d98b58607e3ec0ffd39 Mon Sep 17 00:00:00 2001 From: chenxuyan <chenxuyan@qbb6.com> Date: Mon, 13 Apr 2020 19:46:54 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8C=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../0400-0499/0400.Nth Digit/Solution.java | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/solution/0400-0499/0400.Nth Digit/Solution.java b/solution/0400-0499/0400.Nth Digit/Solution.java index 235a02e5e745d..61285c2fec03c 100644 --- a/solution/0400-0499/0400.Nth Digit/Solution.java +++ b/solution/0400-0499/0400.Nth Digit/Solution.java @@ -6,18 +6,17 @@ public int findNthDigit(int n) { * 举例15,15-9=6,6/2=3...0,余数是0,那么这个数值value=10*(2-1)+(3-1)=12,整除取最后一位 12%10=2 * 举例14,14-9=5,5/2=2...1,余数不为0,那么这个数值value=10*(2-1)+2=12,则为这个数的第余数个 12/(10*(2-1))%10=1 */ - long max=9; - long num=n; - long digits=1; - while (n>0) { - if(num-max*digits>0) { - num=num-max*digits; + long max = 9; + long num = n; + long digits = 1; + while (n > 0) { + if (num - max * digits > 0) { + num = num - max * digits; digits++; - max=max*10; - }else { - long count=num/digits; - long childDigits=num%digits; - long value=(long)Math.pow(10,digits-1)+count-1; + max = max * 10; + } else { + long count = num / digits; + long childDigits = num % digits; if (childDigits == 0) { return (int) (((long) Math.pow(10, digits - 1) + count - 1) % 10); } else { @@ -26,6 +25,5 @@ public int findNthDigit(int n) { } } return 0; - } } \ No newline at end of file From 6dfdec3db1c08502960db660efe90046d50d5eef Mon Sep 17 00:00:00 2001 From: chenxuyan <chenxuyan@qbb6.com> Date: Mon, 13 Apr 2020 19:50:36 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8C=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- solution/0400-0499/0400.Nth Digit/Solution.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/solution/0400-0499/0400.Nth Digit/Solution.java b/solution/0400-0499/0400.Nth Digit/Solution.java index 61285c2fec03c..e0062db95b76a 100644 --- a/solution/0400-0499/0400.Nth Digit/Solution.java +++ b/solution/0400-0499/0400.Nth Digit/Solution.java @@ -1,11 +1,11 @@ class Solution { + /*** + * 12345678910111213 + * 规律个位数9个数一共有9*1,两位数90个数 一共有90*2个数字,三位数有900个数一共有900*3个数字,以此类推 + * 举例15,15-9=6,6/2=3...0,余数是0,那么这个数值value=10*(2-1)+(3-1)=12,整除取最后一位 12%10=2 + * 举例14,14-9=5,5/2=2...1,余数不为0,那么这个数值value=10*(2-1)+2=12,则为这个数的第余数个 12/(10*(2-1))%10=1 + */ public int findNthDigit(int n) { - /*** - * 12345678910111213 - * 规律个位数9个数一共有9*1,两位数90个数 一共有90*2个数字,三位数有900个数一共有900*3个数字,以此类推 - * 举例15,15-9=6,6/2=3...0,余数是0,那么这个数值value=10*(2-1)+(3-1)=12,整除取最后一位 12%10=2 - * 举例14,14-9=5,5/2=2...1,余数不为0,那么这个数值value=10*(2-1)+2=12,则为这个数的第余数个 12/(10*(2-1))%10=1 - */ long max = 9; long num = n; long digits = 1;