diff --git a/task01/src/com/example/task01/Task01.java b/task01/src/com/example/task01/Task01.java index f3c626eb8..6cb7956ef 100644 --- a/task01/src/com/example/task01/Task01.java +++ b/task01/src/com/example/task01/Task01.java @@ -4,18 +4,18 @@ public class Task01 { public static String solution() { - // TODO напишите здесь свою корректную реализацию этого метода, вместо сеществующей + String line = "Я думаю, быть программистом - это круто"; - return "здесь какая-то неправильная строка"; + return line; } public static void main(String[] args) { // Здесь вы можете вручную протестировать ваше решение, вызывая реализуемый метод и смотря результат // например вот так: - /* + String result = solution(); System.out.println(result); - */ + } } diff --git a/task02/src/com/example/task02/Task02.java b/task02/src/com/example/task02/Task02.java index e09621d98..082dde4c7 100644 --- a/task02/src/com/example/task02/Task02.java +++ b/task02/src/com/example/task02/Task02.java @@ -3,19 +3,26 @@ public class Task02 { public static String solution(String input) { - - // TODO напишите здесь свою корректную реализацию этого метода, вместо сеществующей - - return ""; + long number = Long.parseLong(input); + if (number >= Byte.MIN_VALUE && number <= Byte.MAX_VALUE) { + return "byte"; + } + else if (number >= Short.MIN_VALUE && number <= Short.MAX_VALUE) { + return "short"; + } + else if (number >= Integer.MIN_VALUE && number <= Integer.MAX_VALUE) { + return "int"; + } + else return "long"; } public static void main(String[] args) { // Здесь вы можете вручную протестировать ваше решение, вызывая реализуемый метод и смотря результат // например вот так: - /* - String result = solution("12345"); + + String result = solution("10000"); System.out.println(result); - */ + } } diff --git a/task03/src/com/example/task03/Task03.java b/task03/src/com/example/task03/Task03.java index 1b150447a..cfb41e06e 100644 --- a/task03/src/com/example/task03/Task03.java +++ b/task03/src/com/example/task03/Task03.java @@ -3,10 +3,9 @@ public class Task03 { public static int getMetreFromCentimetre(int centimetre) { + int metre = centimetre / 100; - // TODO напишите здесь свою корректную реализацию этого метода, вместо сеществующей - - return 0; + return metre; } public static void main(String[] args) { diff --git a/task04/src/com/example/task04/Task04.java b/task04/src/com/example/task04/Task04.java index 84d94a730..75cedd69e 100644 --- a/task04/src/com/example/task04/Task04.java +++ b/task04/src/com/example/task04/Task04.java @@ -2,11 +2,19 @@ public class Task04 { - public static float calculate(int a, int b, String operation) { - - // TODO напишите здесь свою корректную реализацию этого метода, вместо сеществующей - - return 0; + public static double calculate(int a, int b, String operation) { + if (operation == "+") { + return (double) a + b; + } + else if (operation == "-") { + return (double) a - b; + } + else if (operation == "*") { + return (double) a * b; + } + else { + return (double) a / b; + } } public static void main(String[] args) { diff --git a/task05/src/com/example/task05/Task05.java b/task05/src/com/example/task05/Task05.java index df61b168d..5336db5df 100644 --- a/task05/src/com/example/task05/Task05.java +++ b/task05/src/com/example/task05/Task05.java @@ -3,10 +3,14 @@ public class Task05 { public static String solution(int x) { + String numStr = String.valueOf(x); + for (int i = 0; i < numStr.length(); i++) { - // TODO напишите здесь свою корректную реализацию этого метода, вместо сеществующей - - return "FALSE"; + if ("02468".indexOf(numStr.charAt(i)) == -1) { + return "FALSE"; + } + } + return "TRUE"; } public static void main(String[] args) { diff --git a/task06/src/com/example/task06/Task06.java b/task06/src/com/example/task06/Task06.java index c532b65ee..a8dfbe72e 100644 --- a/task06/src/com/example/task06/Task06.java +++ b/task06/src/com/example/task06/Task06.java @@ -3,10 +3,18 @@ public class Task06 { public static int solution(int x, int y) { + int sum = x + y; + String sumStr = String.valueOf(sum); + int startIndex = 0; + if (sumStr.charAt(0) == '-') { + startIndex = 1; + } + int counter = 0; + for (int i = startIndex; i < sumStr.length(); i++) { + counter++; + } - // TODO напишите здесь свою корректную реализацию этого метода, вместо сеществующей - - return 0; + return counter; } public static void main(String[] args) { diff --git a/task07/src/com/example/task07/Task07.java b/task07/src/com/example/task07/Task07.java index 5e3f2b225..b6b07593f 100644 --- a/task07/src/com/example/task07/Task07.java +++ b/task07/src/com/example/task07/Task07.java @@ -3,10 +3,10 @@ public class Task07 { public static int solution(int n, int m, int k) { + int tentsInWidth = n / k; + int tentsInHight = m / k; - // TODO напишите здесь свою корректную реализацию этого метода, вместо сеществующей - - return 0; + return tentsInHight * tentsInWidth; } public static void main(String[] args) { diff --git a/task08/src/com/example/task08/Task08.java b/task08/src/com/example/task08/Task08.java index e0a5cb0ff..5be0d305b 100644 --- a/task08/src/com/example/task08/Task08.java +++ b/task08/src/com/example/task08/Task08.java @@ -5,7 +5,7 @@ public class Task08 { public static boolean solution() { // TODO измените тип и значение переменной x, чтобы возвращалось значение true - int x = 100; + double x = Double.POSITIVE_INFINITY; return x == x + 1; } diff --git a/task09/src/com/example/task09/Task09.java b/task09/src/com/example/task09/Task09.java index 2c6d1f834..d71a66a39 100644 --- a/task09/src/com/example/task09/Task09.java +++ b/task09/src/com/example/task09/Task09.java @@ -7,7 +7,7 @@ public static double solution() { float a = 1.0f; float b = 3.0f; - double x = (a / b - 1.0 / 3.0) * 1.0e9; + double x = (a / b - 1.0f / 3.0f) * 1.0e9; return x; } diff --git a/task10/src/com/example/task10/Task10.java b/task10/src/com/example/task10/Task10.java index ad8eedab6..c7f1928c2 100644 --- a/task10/src/com/example/task10/Task10.java +++ b/task10/src/com/example/task10/Task10.java @@ -7,8 +7,20 @@ public static boolean compare(float a, float b, int precision) { // TODO корректно сравнивать два значения типа float с заданной пользователем точностью (параметр - количество знаков после запятой). // Функция должна корректно обрабатывать ситуацию со сравнением значений бесконечности. // Функция должна считать значения «не число» NaN (например 0.0/0.0) равными между собой. - - return a == b; + if (Float.isNaN(a) && Float.isNaN(b)) { + return true; + } + + if (Float.isInfinite(a) || Float.isInfinite(b)) { + return Float.compare(a, b) == 0; + } + + if (precision == 0) { + return Math.round(a) == Math.round(b); + } + + float epsilon = (float) Math.pow(10, -precision); + return Math.abs(a - b) <= epsilon; } diff --git a/task11/src/com/example/task11/Task11.java b/task11/src/com/example/task11/Task11.java index 47b80595a..c431234d6 100644 --- a/task11/src/com/example/task11/Task11.java +++ b/task11/src/com/example/task11/Task11.java @@ -3,14 +3,16 @@ public class Task11 { public static float benefit(float sum, float percent) { + float totalInterest = 0.0f; + float current = sum; - // TODO исправьте функцию, чтобы избежать накопления ошибки - - // Считаем проценты за год for (int i = 1; i <= 12; i++) { - sum += sum * percent; + float monthlyInterest = current * percent; + totalInterest += monthlyInterest; //накапливает все проценты отдельно, меньше потерь точности + current += monthlyInterest; } - return sum; + + return sum + totalInterest; //Одно финальное сложение - вместо 12 операций сложения, только 1 в конце } public static void main(String[] args) { diff --git a/task12/src/com/example/task12/Task12.java b/task12/src/com/example/task12/Task12.java index 12da72ee7..85ef4181b 100644 --- a/task12/src/com/example/task12/Task12.java +++ b/task12/src/com/example/task12/Task12.java @@ -1,23 +1,27 @@ package com.example.task12; import java.math.BigDecimal; +import java.math.RoundingMode; public class Task12 { public static BigDecimal benefit(BigDecimal sum, BigDecimal percent) { - // TODO раскомментируйте и исправьте код + BigDecimal current = sum; // Считаем проценты за год - - /* for (int i = 1; i <= 12; i++) { - sum += sum * percent; + BigDecimal monthlyInterest = current.multiply(percent);// Вычисляем проценты за месяц + + + monthlyInterest = monthlyInterest.setScale(9, RoundingMode.HALF_UP);// Округляем проценты до 9 знаков с математическим округлением + + current = current.add(monthlyInterest); + + current = current.setScale(9, RoundingMode.HALF_UP);// Округляем итоговую сумму до 9 знаков } - return sum; - */ - return BigDecimal.ZERO; + return current; } public static void main(String[] args) { diff --git a/task13/src/com/example/task13/Task13.java b/task13/src/com/example/task13/Task13.java index a3ea65e2c..da3458c06 100644 --- a/task13/src/com/example/task13/Task13.java +++ b/task13/src/com/example/task13/Task13.java @@ -4,8 +4,9 @@ public class Task13 { public static char toUpperCase(char c) { - // TODO привести букву к верхнему регистру - + if (c >= 'a' && c <= 'z') { + return (char) (c - 32);// Разница между нижним и верхним регистром в ASCII/Unicode = 32 + } return c; } diff --git a/task14/src/com/example/task14/Task14.java b/task14/src/com/example/task14/Task14.java index 5f07aaab3..d2c1c4161 100644 --- a/task14/src/com/example/task14/Task14.java +++ b/task14/src/com/example/task14/Task14.java @@ -4,10 +4,9 @@ public class Task14 { public static int reverse(int value) { - - // TODO напишите здесь код, переставляющий цифры числа в обратном порядке - - return 0; + String str = String.valueOf(value); + String reversedStr = new StringBuilder(str).reverse().toString(); + return Integer.parseInt(reversedStr); } public static void main(String[] args) {