Дано вещественное число A и целое число N (N > 0). Используя один цикл, найти сумму 1 + A^1 + A^2 + A^3 + ... + A^N. Язык: Java. Нужно решение с использованием do-while, while и for.
Ответы на вопрос
Решение задачи на Java с использованием циклов do-while, while и for
Условие задачи:
Даны вещественное число A и целое положительное число N (N > 0). Необходимо найти сумму:
Решить задачу, используя один цикл. Нужно представить три варианта решения: с помощью do-while, while и for.
1. Решение с использованием цикла do-while
Код программы:
import java.util.Scanner;public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Введите A: ");
double A = sc.nextDouble();
System.out.print("Введите N: ");
int N = sc.nextInt();
double S = 1;
double p = 1;
int i = 1;
do {
p = p * A;
S = S + p;
i++;
} while (i <= N);
System.out.println("Сумма = " + S);
}
}Объяснение:
S = 1— начальное значение суммы, так как в выражении первым слагаемым является единица.p = 1— переменная для хранения текущей степени числа A.i = 1— счётчик цикла.p = p * A— вычисляем очередную степень числа A.S = S + p— добавляем полученную степень к общей сумме.i++— увеличиваем счётчик на единицу.Цикл продолжается, пока
i <= N.
Цикл do-while сначала выполняет тело цикла, а затем проверяет условие.
2. Решение с использованием цикла while
Код программы:
import java.util.Scanner;public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Введите A: ");
double A = sc.nextDouble();
System.out.print("Введите N: ");
int N = sc.nextInt();
double S = 1;
double p = 1;
int i = 1;
while (i <= N) {
p = p * A;
S = S + p;
i++;
}
System.out.println("Сумма = " + S);
}
}Объяснение:
Алгоритм аналогичен предыдущему решению.
Изначально сумма равна 1.
Переменная
pхранит текущую степень числа A.Пока счётчик
iне превышает N, выполняются следующие действия:Вычисляется очередная степень:
p = p * A.Степень добавляется к сумме:
S = S + p.Счётчик увеличивается на единицу.
После завершения цикла выводится результат.
Главное отличие while от do-while заключается в том, что условие цикла while проверяется перед выполнением тела цикла.
3. Решение с использованием цикла for
Код программы:
import java.util.Scanner;public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Введите A: ");
double A = sc.nextDouble();
System.out.print("Введите N: ");
int N = sc.nextInt();
double S = 1;
double p = 1;
for (int i = 1; i <= N; i++) {
p = p * A;
S = S + p;
}
System.out.println("Сумма = " + S);
}
}Объяснение:
В цикле for объединены три элемента:
int i = 1— начальная установка счётчика.i <= N— условие продолжения цикла.i++— увеличение счётчика после каждой итерации.
В теле цикла:
p = p * A— вычисление очередной степени числа A.S = S + p— добавление степени к общей сумме.
После выполнения всех итераций программа выводит результат.
4. Пример работы программы
Пусть:
A = 2N = 4
Тогда необходимо вычислить:
Рассмотрим последовательность вычислений:
Итерация |
Степень |
Сумма |
|---|---|---|
Начало |
1 |
1 |
1 |
2 |
3 |
2 |
4 |
7 |
3 |
8 |
15 |
4 |
16 |
31 |
5. Сравнение трёх циклов
Цикл |
Особенность |
|---|---|
|
Сначала выполняет тело цикла, затем проверяет условие. |
|
Сначала проверяет условие, затем выполняет тело цикла. |
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

