Не могу понять, правильный ли мой алгоритм - PullRequest
0 голосов
/ 05 ноября 2019

Я пытаюсь закодировать метод (школа ...), который принимает число x и индекс i в качестве параметров. Мы хотим, чтобы наш метод возвращал цифру с индексом i числа x в десятичном представлении. Индексы считаются как 1 для последней цифры, считая в обратном направлении.

static int k_eme(int x, int i) {

    for (int j = 2; j <= i; j++) {
        x /= 10;
    }
    return x%10;
}

public static void main(String[] args) {
    System.out.println(k_eme(2049, 4));
}

Например:

int number = 2048; 
int index = 1;

k_eme(number, index); // returns 8
k_eme(2189, 3); // returns 1

Это упражнение алгоритма, поэтому старайтесь не предоставлять ответы, которые содержатслишком много встроенных методов Java.

1 Ответ

0 голосов
/ 05 ноября 2019

Если x является приемлемым типом чисел в Java, это хорошо.

Но если x намного большее число, например 12345678910111213141516171819202122232425262728293031… (1000 цифр), вы не можете использовать этот алгоритм. Чтобы справиться с этим, вы должны использовать String тип данных, и я предлагаю следующий алгоритм.

    static char getDigit(String N, int d) {  
        return N.charAt(N.length() - d);  
    }

    static char getDigit(int N, int d) {
        String str = String.valueOf(N);
        return str.charAt(str.length() - d);  
    }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...