Я новичок в программировании на Java и попробовал решить несколько задач в Project Euler. Я каким-то образом придумал свою собственную проблему печати последовательности экспонент 3 и 5 и ограничил результат ниже 1000. Я исследовал в течение 3 дней, чтобы найти лучший подход к этой проблеме, но я не мог найти соответствующие статьи. Я встречал алгоритмы экспоненциальных рядов, но сейчас они были слишком продвинутыми для моих возможностей.
Буду признателен за любую помощь в решении этой проблемы. Пожалуйста, посмотрите код, который я пробовал
public class Exponent {
public static void main (String[] args) {
// Declared integers for base and exponent
int i = 0; /* for base */
int n = 0; /* for exponent */
for (n=1; n<5; n++) {
for (i=1; i<=5; i++) {
if (i%3 == 0 || i%5 == 0) {
System.out.println(Math.pow(i,n));
}
}
}
}
}
Этот код выводит следующий результат:
3.0
5.0
9.0
25.0
27.0
125.0
81.0
625.0
Моя проблема в том, что совершенно очевидно, что я заставляю экспоненту печатать ниже 1000, ограничивая значение базы и экспоненты внутри цикла.
for (n=1; n<5; n++) //because n<=5 would print result for 5 power 5 which is 3125
Я хотел бы как-то ограничить результат ниже 1000, поэтому не уверен, подходит ли это объявление
int result = 1000; // result variable as 1000
Кроме того, я хочу, чтобы код печатал вывод с чередованием 3 и 5, как показано ниже. Моя программа выводит результат в последовательности 3 и 5 соответственно.
Desired output:
3.0
5.0
9.0
27.0
125.0
81.0
625.0
243.0
729.0
И останавливается на этом, потому что следующее значение превысит 1000.
Я также хотел знать, есть ли какой-либо другой подход вместо использования метода Math.pow (), потому что он возвращает double вместо int. Я хотел бы избежать двойного значения и просто напечатать следующее:
Without double:
3
5
9
27
81
125
243
625
729
int aValue = (int) Math.pow(i,n);
. Что касается алгоритма, я не уверен, что вы спросили. Вы хотите, чтобы функция собирала экспоненты до 1000? Если да, добавьте ограничение (например, структуруif
) - person Bonatti   schedule 23.06.2016