• Предмет: Информатика
  • Автор: nastyaaaaaa28
  • Вопрос задан 7 лет назад

Даю 72 балла за верно выполненное задание

1. напишите программу, которая вводит последовательность целых чисел, заканчивающихся нулём, и определяет, сколько из этих чисел удовлетворяет условию: сумма значений цифр десятичной записи числа равна 10.
2.Напишите программу, которая вводит с клавиатуры натуральное число N и определяет его факториал.Что будет, если ввести большое значение N(например, 20)?
3.Напишите программу, которая определяет, верно ли, что введённое число содержит по крайней мере 2 одинаковые цифры, возможно, не стоящие рядом(как, например, 212)

Ответы

Ответ дал: ruslol
0
1)
var i,a:Integer;
begin
a:= 1;
while a<>0 do
begin
Read(a);
i+=a;
end;
WriteLn(i=10);
end.

2) Можно через double. Но после 170! уже бесконечность.
var n:Integer;
var b:double;
begin
b:=1;
Read(n);
for var i:= 1 to n do
b*=i;
WriteLn('factorial '+n+' = '+b);
end.

3) Работает как и с числами так и со строками.
var arr:array of char;
var a:String;
var first,last:Integer;
begin
Read(a);
arr:= a.ToCharArray();
for var i:= 0 to arr.Length-1 do
begin
first:=Pos(arr[i], a);
last:=Pos(arr[i], a,first+1);
if (first>0) and (last > 0) and (first<>last) then
begin
first:=99;
break;
end;
end;
if first = 99 then
WriteLn('Содержит. Это число '+arr[last-1])
else
WriteLn('Несодержит.');
end.
Вас заинтересует