Я новичок в java. Одна из проблем, с моего лектора был:Изменить решение для использования одного цикла
- Учитывая диапазон от 1 до некоторого заданного максимального целого числа п, которое должно быть кратны некоторым заданным целым числом д, то:
а. Распечатайте сумму каждой партии чисел q; и
b. Вывести сумму всех целых чисел от 1 до последнего числа в этой партии
Пример: Для п = 1000 и д = 50 Программа выведет:
Sum from 1 to 50: 1275
Sum from 1 to 50: 1275
Sum from 51 to 100: 3775
Sum from 1 to 100: 5050
Sum from 101 to 150: 6275
Sum from 1 to 150: 11325
Sum from 151 to 200: 8775
Sum from 1 to 200: 20100
Sum from 201 to 250: 11275
Sum from 1 to 250: 31375
Sum from 251 to 300: 13775
Sum from 1 to 300: 45150
Sum from 301 to 350: 16275
Sum from 1 to 350: 61425
Sum from 351 to 400: 18775
Sum from 1 to 400: 80200
Sum from 401 to 450: 21275
Sum from 1 to 450: 101475
мне удалось решить эту проблему, ниже мое решение:
public class ProblemA001k {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum1 = 0;
int sum2 = 0;
int maxN, divQ;
Scanner key = new Scanner(System.in);
System.out.println("Please enter the maximum value, n");
maxN = key.nextInt();
System.out.println("Please enter the divisor of n, q");
divQ = key.nextInt();
int p, i;
int q = divQ;
int newQ = 1;
for(int j = 0; j < maxN/q; j++) {
for(i = newQ; i <= divQ; i++) {
sum1 += i;
}
System.out.println("Sum from " + newQ + " to " + divQ + ":" + sum1);
for(p = 1; p <= divQ; p++) {
sum2 += p;
}
System.out.println("Sum from 1" + " to " + divQ + ":" + sum2);
System.out.println();
divQ += q;
newQ += q;
sum1 = 0;
sum2 = 0;
}
key.close();
}
}
Теперь мне сказали, чтобы изменить свое решение так, что он использует только один контур. У меня есть 3 цикла в коде выше, даже когда я пытался использовать только 2 петли, с которыми я боролся. но ОДИН ЛОП? Я не знаю, как улучшить код. Пожалуйста, помогите мне.
Просто некоторые Math, чтобы найти сумму от 1 до X, нет необходимости в цикле, 'X * (X + 1)/2' будет делать i t;) – AxelH
Спасибо, что на самом деле показывали нам некоторые из ваших собственных работ, а не отправляли только тот вопрос, который дал вам лектор. Мы не видим слишком часто здесь :) –
@AxeIH вы можете использовать его? , Я вынужден использовать ОДИН цикл. –