Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Да, конечно. Вот решение с использованием только оператора WHILE:
- ```pascal
- program PowersOfTwo;
- var
- n, i: integer;
- number: longint;
- begin
- writeln('Введите число n (n > 0):');
- readln(n);
- number := 1;
- i := 0;
- while n > 0 do
- begin
- while i <= n-1 do
- begin
- write(number, ' ');
- number := number * 2;
- i := i + 1;
- end;
- n := 0;
- end;
- readln;
- end.
- ```
- Или можно ещё проще, используя всего один цикл WHILE:
- ```pascal
- program PowersOfTwo;
- var
- n: integer;
- number: longint;
- begin
- writeln('Введите число n (n > 0):');
- readln(n);
- number := 1;
- while n > 0 do
- begin
- write(number, ' ');
- number := number * 2;
- n := n - 1;
- end;
- readln;
- end.
- ```
- Второй вариант даже лучше, так как:
- 1. Код стал короче и понятнее
- 2. Не требуется дополнительная переменная i для счётчика
- 3. Используем n как счётчик, уменьшая его значение в цикле
- 4. Программа всё так же выведет все степени двойки от 2⁰ до 2ⁿ⁻¹
- При вводе n = 4 результат будет тот же:
- 1 2 4 8
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement