рони,
Стоп, это уже полный бардак...
Сначала я подумал, что твоя функция должна возвращать размер. Но, видимо, на самом деле она возвращает индекс.
Тогда вопрос, откуда твоему универсальному преобразователю заранее известно, какие диапазоны x, y, z и т.д. я от нее требую?
А что если размерность такая: [2][122][2][9999]? То есть, в чем тут универсальность?
Ты наверно решил, что последовательность 5,6,7 арифметическая, или что? Я же эти цифры от фонаря придумал))) Цель была проста: показать, что многомерный массив известной величины можно легко свести к одномерному. Что собственно и происходит на практике в языках, где они поддерживаются.