Skip to content

Commit 1f8d256

Browse files
committed
3010
1 parent a45df50 commit 1f8d256

2 files changed

Lines changed: 57 additions & 0 deletions

File tree

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.javarush.task.task30.task3010;
2+
3+
/*
4+
Минимальное допустимое основание системы счисления
5+
*/
6+
7+
import java.math.BigInteger;
8+
9+
public class Solution {
10+
public static void main(String[] args) {
11+
//напишите тут ваш код
12+
int minRadix = 0;
13+
try {
14+
for (int i = 36; i >= 2; i--) {
15+
BigInteger bigInteger = new BigInteger(args[0], i);
16+
minRadix = i;
17+
}
18+
}
19+
catch (NumberFormatException e){}
20+
catch (Exception e){ return; }
21+
System.out.println(minRadix == 0 ? "incorrect" : minRadix);
22+
}
23+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
taskKey="com.javarush.task.task30.task3010"\n\nМинимальное допустимое основание системы счисления
2+
3+
В метод main первым аргументом приходит строка, которая содержит последовательность символов (Все символы в
4+
строке имеют коды в таблице ASCII от 32 до 127 включительно). Длина строки не превышает 255 символов. Нужно
5+
реализовать программу, которая по входящей строке определит, является ли содержимое строки записью числа в
6+
системе счисления с основанием не больше 36 включительно. Если является - нужно вывести минимальное
7+
основание системы счисления, в которой это число может существовать. Если не является - необходимо вывести
8+
"incorrect".
9+
В системах счисления с основанием большим 10 в качестве цифр используются латинские буквы. К примеру, числу
10+
35 в десятичной системе соответствует число "Z" в системе с основанием 36. Так как рассматриваем
11+
позиционные системы счисления - минимальное основание, которое должна выводить программа, это 2.
12+
Если возникают любые исключения - перехватывай их и не выводи стек-трейс.
13+
14+
Пример1:
15+
Вход: 00
16+
Ожидаемый вывод: 2
17+
18+
Пример2:
19+
Вход: 12AS08z
20+
Ожидаемый вывод: 36
21+
22+
Пример3:
23+
Вход: 12AS08Z/
24+
Ожидаемый вывод: incorrect
25+
26+
27+
Требования:
28+
1. Если возникло любое исключение - необходимо перехватить его и не выводить стек-трейс.
29+
2. Если входящая строка содержит что-либо, кроме латинских букв и цифр - необходимо вывести "incorrect".
30+
3. Если входящая строка корректна - необходимо вывести основание системы счисления.
31+
4. Минимальное основание, которое выводит программа должно равняться 2.
32+
5. Вывод программы должен соответствовать условию.
33+
34+

0 commit comments

Comments
 (0)