-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathSolution.java
More file actions
101 lines (60 loc) · 3.8 KB
/
Copy pathSolution.java
File metadata and controls
101 lines (60 loc) · 3.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
//And the rest of the men which were not killed by these plagues yet repented not of the works of their hands,
//that they should not worship devils, and idols of gold, and silver, and brass, and stone, and of wood:
//which neither can see, nor hear, nor walk (Revelation 9:20)
package com.javarush.task.task30.task3010;
/*
Минимальное допустимое основание системы счисления
*/
import java.math.BigDecimal;
import java.math.BigInteger;
public class Solution {
public static void main(String[] args) {
try {
for (int i = 2; i < 37; i++) {
if (isNumber(args[0], i)) {
System.out.println(i);
break;
} else {
if (i == 36) System.out.println("incorrect");
}
}
} catch (Exception e) {
}
}
public static boolean isNumber(String arg, int radix) {
boolean result = false;
try {
new BigDecimal(new BigInteger(arg, radix));
result = true;
} catch (Exception e) {
}
return result;
}
}
/*
Минимальное допустимое основание системы счисления
В метод main первым аргументом приходит строка, которая содержит последовательность символов (Все символы в строке имеют коды в таблице ASCII от 32 до 127 включительно). Длина строки не превышает 255 символов. Нужно реализовать программу, которая по входящей строке определит, является ли содержимое строки записью числа в системе счисления с основанием не больше 36 включительно. Если является - нужно вывести минимальное основание системы счисления, в которой это число может существовать. Если не является - необходимо вывести "incorrect".
В системах счисления с основанием большим 10 в качестве цифр используются латинские буквы. К примеру, числу 35 в десятичной системе соответствует число "Z" в системе с основанием 36. Так как рассматриваем позиционные системы счисления - минимальное основание, которое должна выводить программа, это 2.
Если возникают любые исключения - перехватывай их и не выводи стек-трейс.
Пример1:
Вход:
00
Ожидаемый вывод:
2
Пример2:
Вход:
12AS08z
Ожидаемый вывод:
36
Пример3:
Вход:
12AS08Z/
Ожидаемый вывод:
incorrect
Требования:
1. Если возникло любое исключение - необходимо перехватить его и не выводить стек-трейс.
2. Если входящая строка содержит что-либо, кроме латинских букв и цифр - необходимо вывести "incorrect".
3. Если входящая строка корректна - необходимо вывести основание системы счисления.
4. Минимальное основание, которое выводит программа должно равняться 2.
5. Вывод программы должен соответствовать условию.
*/