Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Максимова алгоритмизация.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.17 Mб
Скачать

1 Способ

Program Problem15; { Вычисление факториала числа n! }

uses Crt;

var

n, f, i : longint;

begin

write('Введите натуральное число '); readln(n);

f := 1;

if n <> 0 then for i := 1 to n do f := f*i;

writeln('Факториал числа ', n, ' равен ', f)

end.

2 Способ

Program Problem1a;

uses WinCrt;

var

n, i, f : longint;

begin

write('Введите натуральное число '); readln(n);

f := 1;

if n <> 0 then for i := n downto 1 do f := f*i;

writeln('Факториал числа ', n, ' равен ', f)

end.

Задача 16. Квадрат любого натурального числа n равен сумме n первых нечетных чисел:

12 = 1

22 = 1 + 3

32 = 1 + 3 + 5

42 = 1 + 3 + 5 + 7

52 = 1 + 3 + 5 + 7 + 9

. . . . . . . . . . . . . . . . . . .

Основываясь на этом свойстве, составить программу, позволяющую напечатать квадраты натуральных чисел от 1 до n.

Решение

Program Problem16;

uses Crt;

var

i, n, s, k: integer;

begin

writeln('Введите натуральное число, до которого надо');

write('выводить квадраты чисел '); readln(n);

writeln('Квадраты чисел следующие:');

s := 0; k := 1;

for i := 1 to n do

begin

s := s + k;

writeln('Квадрат числа ', i, ' равен ', s);

k := k + 2

end

end.

Задача 17. Напечатать все четырехзначные числа, в десятичной записи которых нет двух одинаковых цифр.

Решение

1 Способ

Program Problem17; { 1 - й способ }

uses WinCrt;

var

t, s, d, e : integer;

begin

writeln('Все четырехзначные числа из разных цифр');

for t := 1 to 9 do

for s := 0 to 9 do

for d := 0 to 9 do

for e := 0 to 9 do

if (t <> s) and (t <> d) and (t <> e) and (s <> d) and

(s <> e) and (d <> e)

then write(t*1000 + s*100 + d*10 + e, ' ')

end.

2 Способ

Program Problem17a; { 2 - й способ }

uses WinCrt;

var

t, s, d, e : integer;

begin

writeln('Все четырехзначные числа из разных цифр');

for t := 1 to 9 do

for s := 0 to 9 do if s <> t then

for d := 0 to 9 do if (d <> s) and (d <> t) then

for e := 0 to 9 do

if (e <> d) and (e <> s) and (e <> t)

then write((((t*10 + s)*10 + d)*10) + e, ' ')

end.

Задача 18. Тройки натуральных чисел a, b, c, удовлетворяющих равенству: - называются Пифагоровыми числами.

Например, 3, 4 и 5 являются Пифагоровыми числами, поскольку

Составить программу для нахождения и печати всех Пифагоровых чисел, не превышающих 20.

Решение

Program Problem18;

uses WinCrt;

var

a, b, c : integer;

begin

writeln('Тройки Пифагоровых чисел из промежутка [1; 20]');

for a := 1 to 20 do

for b := 1 to a do

for c := 1 to 20 do

if a*a + b*b = c*c then writeln(a, ' ', b, ' ', c)

end.