Сообщение об ошибке «несовместимые типы: возможно преобразование с потерями из double в int» обычно появляется, когда вы пытаетесь присвоить значение double переменной int без явного приведения типов. В вашем примере кода кажется, что вы пытаетесь присвоить результат math.pow(q, ki)переменной int y, но Функция math.pow()возвращает двойное значение.
Чтобы решить эту проблему, вы можете явно привести результат math.pow()к int с помощью оператора приведения типа (int). Вот пример:
int y = (int) Math.pow(q, ki);
В качестве альтернативы, если вы хотите округлить значение double до ближайшего целого числа, вы можете использовать метод Math.round()и присвоить округленное значение переменной int. Вот пример:
int y = (int) Math.round(Math.pow(q, ki));
Другой вариант — использовать методы Math.floor()или Math.ceil()для преобразования значения double в целое число путем его округления в большую или меньшую сторону. соответственно. Вот примеры:
int y = (int) Math.floor(Math.pow(q, ki)); // Rounds down to the nearest integer
int y = (int) Math.ceil(Math.pow(q, ki)); // Rounds up to the nearest integer
Не забудьте заменить qи kiсоответствующими значениями в вашем коде.