Другие языки программирования и технологии

помогите написать програму в паскале. Задано натуральное число х. вывести все двознначные числа ,сума которых меньше х.

Что-то вы, девушка, в вопросе попутали!
Последовательностей двузначных чисел, сумма которых меньше Х, очень много. (Для X=100 их более 50 тысяч! )
Даже если ввести дополнительное условие, чтобы выводились только те последовательности, в которых не менее 2-х слагаемых, то для Х=100 их всё равно будет 46134.
type
PoslType = array [1..100] of Byte;
var
X, MaxN, N : Integer;
Kol : Longint;
Posl : PoslType;

procedure OutPosl(Sum, P : Integer);
var
N : Byte;
begin
Kol := Kol + 1;
Write(Sum, ' = ', Posl[1]);
for N := 2 to P do Write('+', Posl[N]);
WriteLn;
end;

procedure NextChislo(Sum, N0, P : Integer);
var
N : Integer;
begin
Sum := Sum + N0;
Posl[P + 1] := N0;

if Sum + (N0 + 1) < X then
for N := N0 + 1 to X - Sum - 1 do
NextChislo(Sum, N, P + 1)
else
if P > 0 then
OutPosl(Sum, P + 1);
end;

begin
Write('Введите натуральное число Х = '); ReadLn(X);
if X < 1 then begin WriteLn('Это не натуральное число! '); Halt; end;
if X < 10 then begin WriteLn('Таких двузначных чисел нет! '); Halt; end;

MaxN := 99;
if MaxN > X then MaxN := X;

Kol := 0;
for N := 10 to MaxN do
NextChislo(0, N, 0);
WriteLn('Всего последовательностей ', Kol);
end.
Виталий Качалков
Виталий Качалков
93 482
Лучший ответ
Циклов проверки много, и округлений... вот и всё
Иляс Ахмедов
Иляс Ахмедов
8 140

Похожие вопросы