Пожалуйста, не принимайте это как ответ на вопрос. Это не так, но совет, связанный с использованием различий между int и float. Я бы поместил это под комментарием, за исключением того, что поле ответа позволяет мне форматировать этот комментарий.
Эта функция использовалась во всех уважаемых языках программирования со времен Фортрана (или ранее) - я должен признаться, что когда-то был программистом перфокарт на Фортране и Коболе.
В качестве примера, целочисленное деление 10/3 дает целочисленное значение 3, поскольку целое число не имеет возможности хранить дробный остаток .3333 ...
Одним из способов, которым мы (древние программисты) использовали эту функцию, является управление циклом.
Допустим, мы хотим напечатать массив из 1000 строк, но мы хотим вставить разрыв строки после каждой 15-й строки, чтобы вставить несколько симпатичных символов в конце строки и в начале следующей строки. Мы используем это, учитывая, что целое число k - позиция строки в этом массиве.
int(k/15)*15 == k
верно только тогда, когда k делится на 15, что происходит с частотой каждой 15-й ячейки. Что сродни тому, что сказал мой друг о том, что мертвые часы его деда точны два раза в день.
int(1/15) = 0 -> int(1/15)*15 = 0
int(2/15) = 0 -> int(2/15)*15 = 0
...
int(14/15) = 0 -> int(14/15)*15 = 0
int(15/15) = 1 -> int(15/15)*15 = 15
int(16/15) = 1 -> int(16/15)*15 = 15
int(17/15) = 1 -> int(17/15)*15 = 15
...
int(29/15) = 1 -> int(29/15)*15 = 15
int(30/15) = 2 -> int(30/15)*15 = 30
Следовательно, цикл,
leftPrettyfy();
for(int k=0; k<sa.length; k++){
print(sa[k]);
int z = k + 1;
if ((z/15)*15 == z){
rightPrettyfy();
leftPrettyfy();
}
}
При причудливом изменении k в цикле мы можем напечатать треугольную распечатку
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
Это означает, что, если вы считаете это ошибкой, эта " ошибка " является полезной функцией, которую мы не хотели бы удалять из любого из различных языков, которые мы использовали до сих пор. .