В задачке используется массив предопределенных значений. Суть задачки не важна, так как сконцентрировавшись на ее решении можно упустить очевидное. Я натыкался на такие проблемы, когда начинал изучать Java. Вот массив значений каждое из которых меньше предыдущего на 111:
int[] values = {
789, 678, 567, 456,
345, 234, 123, 012 };
Или нет?
Согласно JLS 3.10.1 целочисленные литералы, начинающиеся с 0 интерпретируются как числа, записанные в восьмеричной системе счисления. Таким образом, последние значение равно 10. Авторы рекомендуют никогда не выравнивать целочисленные литералы с помощью 0. А так хочется иногда иметь красивую табличку в коде!
Тяжелое наследие Fortran и C...
Неужели сейчас кто-то использует восьмеричную систему?
Ты не поверишь: и С и Фортран до сих пор используются. Хотя, ИМХО, С гораздо больше распространен.
ОтветитьУдалитьБлин! Ты меня не так понял...
ОтветитьУдалитьЯ про восьмеричную систему счисления говорил.
Сейчас исправлю.