Решение на Домашно 05 от Основи на програмирането с Java - декември 2016
Дата: 4-ти февруари 2017
Задача 01 ( Числа от 1 до 100 )
Решена на лекцията.
Задача 02 ( Числа до 1000, завършващи на 7 )
Решена на лекцията.
Задача 03 ( Всички латински букви )
Решена на лекцията.
Задача 04 ( Сумиране на числа )
Решена на лекцията.
Задача 05 ( Най-голямо число )
Решена на лекцията.
Решена на лекцията.
Задача 07 ( Лява и дясна сума )
Решена на лекцията.
Задача 08 ( Четна / нечетна сума )
Единственото различно от показаното в лекцията е използването на булева променлива в проверката в коя сума трябва да добавим текущото въведено число. Булевата променлива сменя стойността си при завъртане на цикъла for (int i = 0; i < numberCount; i++, isPositionEven = !isPositionEven) , като след всяко завъртане се взима обратната на последната стойност.
Задача 09 ( Сумиране на гласните букви )
Решена на лекцията.
Задача 10 ( Елемент, равен на сумата на останалите )
При въвеждането на числата намираме числото с най-голяма стойност и сумираме всички числа. Правим проверка дали най-голямото число е равно на сумата на всички числа от която изваждаме най-голямото число(което всъщност е съмата на всички числа без най-голямото число). По желание може да се вкара резултатът в булева променлива, която да се използва в проверката за печатане на изходните данни. Незнайно защо аз съм решил да не правя таква булева променлива :)
Задача 11 ( Четни / нечетни позиции )
В тази задача са смесени няколко от предходните задачи. особеното е че използвам import java.text.DecimalFormat; import java.text.NumberFormat; import java.util.Locale; за да форматирам числата и за да променя десетичната запетая в десетична точка(нещо което не исках да направя с Local в предното домашно). Тук могат да се ползват Math.min() и Math.max(), но имал съм желание разписал съм ги на ръка.
Егото е голям враг! Повече от 5 пъти пуснах кода в джъдж преди да прочета условието на задачата по-задълбочено, защото една от проверките не ми излизаше, а то се оказа че въобще не ми е по условие кода на задачата.
Тук не мисля че има нещо особено.
Задача 14 ( Деление без остатък )
Същата като 13-та задача, но с по-малко променливи/писане.
Интересно решение. Трябва да проверим дали Double.MIN_VALUE == -Double.MAX_VALUE. Иначе всеки е добре дошъл да споделя решенията си тук и да обсъждаме задачите. Идеята на темата е да водим дискусия. Между другото решението ти ми даде интересни идеи. Довечера ще разпиша алтернативно решение на 11-та задача.
На 10-а задача от къде се взе променливата absDiff и как я сметна?
Още по-интересно ми е колко ти даде judge за нея?
Пробвай си решенията и ще си намериш грешките сам
За int е винаги вярно за Double не знам.
Всички решения които публикувам са тествани в джъдж и всички са преминали със 100 точки. Ако си намерил грешки някаде моля да ги споделиш. Нека всички се поучим ако съм допускал грешки. За 12-та си прав че няма смисъл от вложен цикъл ;) заиграх се.