Мне действительно нужна помощь в создании программы, которая отображает список полномочий
вот вход и выход:
Вход в приложение должен включать числа, представляющие следующее:
базовый показатель (от 1 до 10)
Вывод состоит в том, чтобы указать номер, который вы ввели в качестве базы, и найти полномочия для этой базы от 1 до конечного числа экспонентов, которое вводится.
Я почти закончил программу, но проблема в том, что программа рассчитывает базу только на мощность без перечисления списка полномочий.
Я знаю, что у меня что-то отсутствует в моем цикле, вот мой код
double baseIn, exponentIn;
baseIn = Integer.parseInt(txtBase.getText());
exponentIn = Integer.parseInt(txtExponent.getText());
// power = (int) Math.pow(baseIn, exponentIn);
for (int i = 1; i <= exponentIn; i++) {
txtArea.setText(Integer.toString((int) baseIn)+ "to the power of " + i + "=" + Math.pow(baseIn, i) );
}
Одна из проблем может заключаться в том, что вы перезаписываете тестовую строку выходной текстовой области в каждой итерации цикла, так что в конце - возможно, не видя ничего другого, потому что ваш код происходит так быстро, что не происходит перекраска - вы, только см. последний вывод.
Используйте stringbuilder, добавьте строку каждой итерации и покажите только комбинированный результат после цикла.
Или используйте уже существующую функциональность
textArea.append(text + newline);
см., например, Java Swing: подход для динамического добавления текста в текстовую область, обновление прокрутки
Ниже приводится рекурсивное решение. Объясняется поэтапно. Предполагая, что вы хотите 2 ^ 4
1) мы называем мощность (2,4)
2) мощность (2,4) вызывает мощность (2,3)
3) мощность (2,3) вызывает мощность (2,2)
4) мощность (2,2) потребляет мощность (2,1)
5) мощность (2,1) вызывает мощность (2,0)
6) мощность (2,0) возвращает 1
7) мощность (2,1) возвращается (2 * 1) или 2
8) мощность (2,2) возвращается (2 * 2) или 4
9) мощность (2,3) возвращается (2 * 4) или 8
10) мощность (2,4) возвращается (2 * 8) или 16
public static int power(int base, int power){
if (power == 0)
return 1;
else
return base * power(base, power-1);
}