Даю 72 балла за правильно выполненное задание1. напишите программу, которая вводит
Даю 72 балла за верно выполненное задание
1. напишите программку, которая вводит последовательность целых чисел, заканчивающихся нулём, и определяет, сколько из этих чисел удовлетворяет условию: сумма значений цифр десятичной записи числа одинакова 10.
2.Напишите программу, которая вводит с клавиатуры естественное число N и определяет его факториал.Что будет, если ввести великое значение N(к примеру, 20)?
3.Напишите программу, которая определяет, верно ли, что введённое число содержит по крайней мере 2 схожие цифры, вероятно, не стоящие рядом(как, к примеру, 212)
2 ответа
Милана Норинова
PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018
Внимание! Если программка не работает, обновите версию!
1
function IsGood(n:integer):boolean;
begin
n:=Абс(n);
var s:=0;
while ngt;0 do begin
s+=n mod 10;
n:=n div 10
end;
Result:=s=10
end;
begin
var k:=ReadSeqIntegerWhile(t-gt;tlt;gt;0).Where(t-gt;IsGood(t)).Count;
Writeln(k,' чисел с суммой цифр, одинаковой 10')
end.
Пример
-5234 20043 52340 10531 -64 31502 0
2 чисел с суммой цифр, одинаковой 10
2
begin
var n:=ReadInteger('Введите число:');
if nlt;=1 then Writeln(n,'!=',1)
else Writeln(n,'!=',1.To(n).Aggregate(BigInteger(1),(i,j)-gt;i*j))
end.
Образцы
Введите число: 5
5!=120
Введите число: 20
20!=2432902008176640000
Введите число: 100
100!=93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
3
begin
if ReadInteger('Введите число:').ToString.GroupBy(t-gt;t).
Select(t-gt;(t.Key,t.Count)).Any(t-gt;t[1]gt;1)
then Writeln('Число содержит по последней мере две схожие числа')
else Writeln('Введенное число не содержит схожих цифр')
end.
Образцы
Введите число: 12345670
Введенное число не содержит схожих цифр
Введите число: 1320624
Число содержит по крайней мере две схожие цифры
Внимание! Если программка не работает, обновите версию!
1
function IsGood(n:integer):boolean;
begin
n:=Абс(n);
var s:=0;
while ngt;0 do begin
s+=n mod 10;
n:=n div 10
end;
Result:=s=10
end;
begin
var k:=ReadSeqIntegerWhile(t-gt;tlt;gt;0).Where(t-gt;IsGood(t)).Count;
Writeln(k,' чисел с суммой цифр, одинаковой 10')
end.
Пример
-5234 20043 52340 10531 -64 31502 0
2 чисел с суммой цифр, одинаковой 10
2
begin
var n:=ReadInteger('Введите число:');
if nlt;=1 then Writeln(n,'!=',1)
else Writeln(n,'!=',1.To(n).Aggregate(BigInteger(1),(i,j)-gt;i*j))
end.
Образцы
Введите число: 5
5!=120
Введите число: 20
20!=2432902008176640000
Введите число: 100
100!=93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
3
begin
if ReadInteger('Введите число:').ToString.GroupBy(t-gt;t).
Select(t-gt;(t.Key,t.Count)).Any(t-gt;t[1]gt;1)
then Writeln('Число содержит по последней мере две схожие числа')
else Writeln('Введенное число не содержит схожих цифр')
end.
Образцы
Введите число: 12345670
Введенное число не содержит схожих цифр
Введите число: 1320624
Число содержит по крайней мере две схожие цифры
Ирина Бризанова
1)
var i,a:Integer;
begin
a:= 1;
while alt;gt;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 (firstgt;0) and (last gt; 0) and (firstlt;gt;last) then
begin
first:=99;
break;
end;
end;
if first = 99 then
WriteLn('Содержит. Это число '+arr[last-1])
else
WriteLn('Несодержит.');
end.
var i,a:Integer;
begin
a:= 1;
while alt;gt;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 (firstgt;0) and (last gt; 0) and (firstlt;gt;last) then
begin
first:=99;
break;
end;
end;
if first = 99 then
WriteLn('Содержит. Это число '+arr[last-1])
else
WriteLn('Несодержит.');
end.
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Игорь 14 лет назад был на 8 лет моложе, чем его
Математика.
Два тела массами m1 и m2 находящие на расстоянии R друг
Физика.
В сосуде 4целых одна пятая литр воды что бы заполнить сосуд
Математика.
Двум малярам Диме И Олегу поручили выкрасить фасад дома они разделили
Разные вопросы.
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
Облако тегов