Repository navigation
Expand file tree
/
Copy pathSolution.java
More file actions
135 lines (85 loc) · 3.75 KB
/
Copy pathSolution.java
File metadata and controls
135 lines (85 loc) · 3.75 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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
// But in the days of the voice of the seventh angel, when he shall begin to sound, the mystery of God should be finished, as he hath declared to his servants the prophets. (Revelation 10:7)
package com.javarush.task.task30.task3012;
/*
Получи заданное число
*/
public class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
solution.createExpression(74);
}
public void createExpression(int number) {
int[] array={1, 3, 9, 27, 81, 243, 729, 2187}; //напишите тут ваш код
String s="";
int nn=number;
while (nn>0)
{
if (nn%3==0)
{
s=s+"0";
nn/=3;
}
else if (nn%3==1)
{
s=s+"+";
nn/=3;
}
else if (nn%3==2)
{
s=s+"-";
nn/=3;
nn++;
}
}
int sum=0;
String str="";
for (int i=0;i<s.length(); i++)
{
if (s.charAt(i)=='+') {
str+=" + "+array[i];
sum+=array[i];
}
else if (s.charAt(i)=='-')
{
str+=" - "+array[i];
sum-=array[i];
}
}
System.out.println(sum+" ="+str);
}
}
/*
Получи заданное число
Реализуй метод createExpression(int number).
Метод createExpression вызывается с одним параметром number. Этот параметр - число от 1 до 3000 включительно.
Нужно вывести арифметическое выражение, результатом которого является число number.
Можно использовать числа: 1, 3, 9, 27, 81, 243, 729, 2187 не более, чем по одному разу.
Можно использовать знаки: "+" и "-" любое количество раз.
Обрати внимание, что перед каждым числом в искомой строке обязательно должен быть знак плюс или минус.
Перед выражением выведи [переданное число] =. (Смотри примеры вывода ниже).
Пример1:
Переданное число:
74
Ожидаемый вывод:
74 = - 1 + 3 - 9 + 81
Пример2:
Переданное число:
1234
Ожидаемый вывод:
1234 = + 1 - 9 + 27 - 243 - 729 + 2187
При выводе выражения используй числа ТОЛЬКО В ВОЗРАСТАЮЩЕМ порядке!
Переданное число:
2
Ожидаемый вывод:
2 = - 1 + 3 //правильно
Ожидаемый вывод:
2 = + 3 - 1 //НЕ правильно
Метод main не участвует в тестировании.
Подсказка:
Почитай в интернете про троичную симметричную систему счисления.
Требования:
1. В начале строчки вывода должно быть расположено число, которое передано в метод createExpression в качестве параметра и знак "=".
2. В выражении можно использовать только числа: 1, 3, 9, 27, 81, 243, 729, 2187 не более, чем по одному разу.
3. В выражении можно использовать только знаки "+" и "-" любое количество раз.
4. Метод createExpression должен быть реализован согласно условию.
*/