1. 程式人生 > >查詢無限整數序列的第n位1,2,3,4,5,6,7,8,9,10,11,...

查詢無限整數序列的第n位1,2,3,4,5,6,7,8,9,10,11,...

本題源自leetcode  400

-------------------------------------------------------------

思路:1 1-9 有9 位數,10-99 有180 位。因此我們首先找到這個位數是幾位數。

2 在找到這個數,然後確定這個數的第幾位是我們要找的

程式碼:

int findNthDigit(int n) {
        long base = 9,digits = 1;
        // 1 計算這個數是幾位數
        while(n - base * digits > 0){
            n -= base * digits;
            base *= 10;
            digits++;
        }
        //2 計算這個數是多少
        int index = n % digits;
        if(index == 0)
            index = digits;
        long num = 1;
        for(int i = 1; i < digits; i++){
            num *= 10;
        }
        num += (index == digits) ? n / digits -1 : n / digits;
        //3 找到這個數的第幾位是我們想要的
        for(int i = index; i < digits; i++)
            num /= 10;
        return num % 10;
    }


相關推薦

查詢無限整數序列n1,2,3,4,5,6,7,8,9,10,11...

本題源自leetcode  400 ------------------------------------------------------------- 思路:1 1-9 有9 位數,10-99 有180 位。因此我們首先找到這個位數是幾位數。 2 在找到這個數,然後

java 輸入一個矩陣按照從外向裡以順時針的順序依次打印出每一個數字例如如果輸入如下矩陣: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 則依次打印出數字1,2,

題目描述 輸入一個矩陣,按照從外向裡以順時針的順序依次打印出每一個數字,例如,如果輸入如下矩陣: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 則依次打印出數字1,

計算1!+2!+3!+4!+5!+6!+7!+8!+9!+10!+......的值(需注意整型變數的範圍)

#include<stdio.h> //***(1)*** //計算1!+2!+3!+4!+5!+6!+7!+8!+9!+10!的值 int func(int n)//一個數的階乘 { if(n>0) return n*func(n-1); if

Java_whilefor-->計算 ∑1+∑2+∑3+∑4+∑5+∑6+∑7+∑8+∑9+∑10

計算 ∑1+∑2+∑3+∑4+∑5+∑6+∑7+∑8+∑9+∑10 思路:多個求和的相加,先考慮單個求和的計算;這個很簡單通過求和公式 (1+n)*n/2 就可以得到 接下來就是開始對n的值進行分析判斷  n屬於1~10  通過for迴圈來實現 整體程式碼如下:TestWh

ACMNO.21 C語言-逆序輸出 輸入10個數字然後逆序輸出。 輸入 十個整數 輸出 逆序輸出空格分開 樣例輸入 1 2 3 4 5 6 7 8 9 0

題目描述 輸入10個數字,然後逆序輸出。 輸入 十個整數 輸出 逆序輸出,空格分開 樣例輸入 1 2 3 4 5 6 7 8 9 0 樣例輸出 0 9 8 7 6 5 4 3 2 1 提示 陣列?堆疊? 來源/分類 C語言

94、tensorflow實現語音識別0,1,2,3,4,5,6,7,8,9

結果 test amp building pre cti fun ner edi ‘‘‘ Created on 2017年7月23日 @author: weizhen ‘‘‘ #導入庫 from __future__ import division,print_func

c語言 對10個數組元素依次賦值為0 1 2 3 4 5 6 7 8 9要求按逆序輸出

                對10個數組元素依次賦值為0,1,2,3,4,5,6,7,8,9,要求按逆序輸出。 解:程式:

1,2,3,4,5,6,7,8,99個數組成3個分數

MixCMul最小公倍數函式,方便分數計算,避免小數 printmol 將一個固定陣列得到三個分數, 判斷兩分數相加是否等於第三個Grial    陣列的各種排列 不說了,看程式碼:static void showArr(int arr[], int len = 9) {

1 2 3 4 5 6 7 8 9 =110 在左邊數字之間加入運算子(+、-或不加)使得等式成立

1 2 3 4 5 6 7 8 9 = 110; 請看上邊的算式,為了使等式成立,需要在數字間填入加號或者減號(可以不填,但不能填入其它符號)。之間沒有填入符號的數字組合成一個數,例如:12+34+56+7-8+9 就是一種合格的填法;123+4+5+67-8

1 2 3 4 5 6 7 8 9 = 110,在數字間填入加號或者減號(可以不填但不能填入其它符號)使等式成立。

一共有3^8種可能。 答案: 成功:12+34+56+7-8+9 = 110 成功:12+3+45+67-8-9 = 110 成功:12-3+4-5+6+7+89 = 110 成功:1+2+34+5+67-8+9 = 110 成功:1-2+3+45-6+78-9 = 110

n制小數 將任意十進位制正小數分別轉換成2,3,4,5,6,7,8,9制正小數小數點後保留8並輸出。

/* n進位制小數 將任意十進位制正小數分別轉換成2,3,4,5,6,7,8,9進位制正小數,小數點後保留8位,並輸出。 例如:若十進位制小數為0.795,則輸出: 十進位制正小數 0.7950

1-2+3-4+5-6+7-8....M 的結果算法

次數 pre blog spa rgs static console line span 1 static void Main(string[] args) 2 { 3 /** 4 * 算法題: 5 * 求 1-2+3-4+5-6+7

山科java實驗3-3編寫一個方法返回一個double型的二維陣列陣列中的元素通過解析字串引數獲得。例如字串引數:“1,2;3,4,5;6,7,8對應的陣列為: d[0,0

編寫一個方法,返回一個double型的二維陣列,陣列中的元素通過解析字串引數獲得。例如,字串引數:“1,2;3,4,5;6,7,8”,對應的陣列為:       d[0,0] = 1.0  d[0,1

寫一個函數計算但參數為nn很大)時的值1-2+3-4+5-6+7……+n。(考慮程序執行效率)

參數 color n) col sys class n-1 == code 1 private static void jisuan(int n) { 2 int sum=0; 3 if(n%2==0){ 4 sum=-(n/2)

計算K個能表示(2^i * 3^j * 5^k)的正整數(i,j,k為整數)?其前7個滿足此條件的數分別是1,2,3,4,5,6,8

public class Main { public static void main(String[] args) { int[] a = new int[1501]; a[1] = 1; TreeMap<Integer, Integ

python練習題寫一個方法 傳進去列表和預期的value 求出所有變量得取值可能性(例如list為[1,2,3,4,5,6,12,19]value為20結果是19+1==20只有一種可能性)要求時間復雜度為O(n)

num bubuko com pri def 代碼 data- 取值 .com 題目:(來自光榮之路老師)a+b==valuea+b+c=valuea+b+c+d==valuea+b+c+d+...=valuea和b....取值範圍都在0-value寫一個方法 傳進去列

python遞歸練習:生成一個n級深度的字典例如:[1,2,3,4,5,6] 可以生成{1: {2: {3: {4: {6: 5}}}}}寫一個函數定義n

生成 結果 dict 深度 遞歸 ict nco strong ron 結果#encoding = utf-8#題目:#生成一個n級深度的字典,例如:[1,2,3,4,5,6] 可以生成{1: {2: {3: {4: {6: 5}}}}},寫一個函數定義n級a=[1,2,3

python遞迴練習:生成一個n級深度的字典例如:[1,2,3,4,5,6] 可以生成{1: {2: {3: {4: {6: 5}}}}}寫一個函式定義n

結果#encoding = utf-8#題目:#生成一個n級深度的字典,例如:[1,2,3,4,5,6] 可以生成{1: {2: {3: {4: {6: 5}}}}},寫一個函式定義n級a=[1,2,3,4,5,6] def fun(n,i=0,dict1={}): if i ==n-1: dict1[a[