Напишите программу в паскаль, пожалуйста))) даю 50 баллов))
Определить количество повторений каждой из цифр 0,1,2,...,9 в числе n!, где n?9, n-натуральное.
Напоминание: n! = 1*2*3*4*….*n.
//PascalABC.NET
//Версия 3.3, сборка 1634
function f(n: integer): integer;
begin
var fx:=1;
for var i:=2 to n do fx:=fx*i;
f:=fx;
end;
begin
var n:=ReadInteger('n=');
for var i:=0 to 9 do writeln('цифра ',i,' повторяется в числе ',f(n),' ',f(n).ToString.Where(x->x.ToDigit=i).Count,' раз' );
end.
Var
a:array[0..9] of integer; { число повторений }
i,n,d,p:integer;
begin
Write('n = '); Read(n);
for i:=0 to 9 do a[i]:=0; { обнулить счетчики }
p:=1;
for i:=2 to n do p:=p*i;
Writeln(n,'! = ',p);
while p>0 do begin
d:=p mod 10;
a[d]:=a[d]+1;
p:=p div 10
end;
Writeln('Количество повторений цифр в числе:');
for i:=0 to 9 do
if a[i]>0 then Write(i,'-',a[i],' ');
Writeln
end.
Пример
n = 9
9! = 362880
Количество повторений цифр в числе:
0-1 2-1 3-1 6-1 8-2
второй вариант
// PascalABC.NET 3.3, сборка 1634 от 14.02.2018
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('n=');
var p:=2.to(n).Aggregate(1,(a,b)->a*b); // факториал
Writeln(n,'! = ',p);
Writeln('Количество повторений цифр в числе:');
foreach var i in
p.ToString.GroupBy(t->t).Select(t->(t.Key,t.Count)).OrderBy(t->t[0]) do
Write(i[0],'-',i[1],' ');
Writeln
end.
Если тебя не устраивает ответ или его нет, то попробуй воспользоваться поиском на сайте и найти похожие ответы по предмету Информатика.
Найти другие ответыИнформатика, опубликовано 08.11.2018
В ячейку С6 записать формулу, которая выражение А4+А5-А6 делит на сумму чисел А7 и А8.
Информатика, опубликовано 08.11.2018
Напишите программу в паскале по этой блок-схеме. Умоляю
20 баллов
Информатика, опубликовано 08.11.2018
Сколько цифр 1 в двоичном представлении десятичного числа 12
Информатика, опубликовано 08.11.2018
Помогите пожалуйста очень очень надо плис как это сделать объясните