barinovmisha2013
?>

А)поставьте подпрограмму-функцию, которая по заданному натуральному числу n вычислит сумму его цифр б) составьте алгоритм, подсчитывающий количество n-значных натуральных чисел, у каждого из которых сумма цифр равна заданному натуральному числу k

Информатика

Ответы

BekturMagometovich189
ОТДЕЛ Задание+;
ИСПОЛЬЗУЕТ Вывод ИЗ "...\Отделы\Обмен\", Приём;

ПЕР
  n, k, сч, мин, кол: ЦЕЛ;

ЗАДАЧА Сумма_цифр(число: ЦЕЛ): ЦЕЛ;
ПЕР
  сумма: ЦЕЛ;
УКАЗ
  сумма := 0;
  ПОКА число > 0 ВЫП
    УВЕЛИЧИТЬ(сумма, число ОСТАТОК 10);
    число := число ДЕЛИТЬ 10
  КОН;
  ВОЗВРАТ сумма
КОН Сумма_цифр;

УКАЗ
  Вывод.Цепь("n: ");
  n := Приём.Число();
  Вывод.Цепь("^k: ");
  k := Приём.Число();
  мин := 1;
  ОТ сч := 1 ДО n - 1 ВЫП
    мин := мин * 10
  КОН;
  кол := 0;
  ОТ сч := мин ДО мин * 10 - 1 ВЫП
    ЕСЛИ Сумма_цифр(сч) = k ТО
      УВЕЛИЧИТЬ(кол)
    КОН
  КОН;
  Вывод.ЧЦел("^%d", кол, 0, 0, 0)

КОН Задание.
ЮлияНиколаевна1748
1. Вот так сейчас решают подобные задачи:

// PascalABC.NET 3.1, сборка 1174 от 22.02.2016
begin
  Writeln(Range(1,100).Select(i->sin(i)*cos(i)).Where(x->x<>0).Average)
end.

Тестовое решение:
-0.00136006072493969

2. А вот так учат писать это же школьные учителя:

// PascalABC.NET 3.1, сборка 1174 от 22.02.2016
var
  m:array[1..100] of real;
  i,k:integer;
  s:real;

begin
  s:=0;
  k:=0;
  for i:=1 to 100 do begin
    m[i]:=sin(i)*cos(i);
    if m[i]<>0 then begin
      s:=s+m[i];
      k:=k+1
      end
    end;
  Writeln(s/k)
end.

Тестовое решение:
-0.00136006072493969
semenovakotya577
Если элементы массива идут по возрастанию, то вот так

program wstawka;
uses crt;
const min=1;
max=20;
type zona=min..max;
massiw=array[zona] of integer;
var mas:massiw;
i,j:zona;
a,N,M:integer;
T:boolean;
BEGIN randomize;
clrscr; N:=random(20);
writeln('4ucJlo N = ',N);
 M:=random(20); Writeln('4ucJlo M = ',M);
for i:=min to max-2 do
begin
mas[i+1]:=mas[i]+random(5);
write(mas[i],' ');
end;
for i:=min to max-2 do
if (mas[i]>N) and (t=false) then
begin
t:=true;
a:=mas[i];
mas[i]:=N;
for j:=i+1 to max do
begin
N:=mas[j];
mas[j]:=a;
a:=N;
end;
end;
for i:=min to max-1 do
if (mas[i]>M) and (t=true) then
begin
t:=false;
a:=mas[i];
mas[i]:=M;
for j:=i+1 to max do
begin
M:=mas[j];
mas[j]:=a;
a:=M;
end;
end;
writeln;
for i:=min to max do
write(mas[i],' ');
readkey;
END.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

А)поставьте подпрограмму-функцию, которая по заданному натуральному числу n вычислит сумму его цифр б) составьте алгоритм, подсчитывающий количество n-значных натуральных чисел, у каждого из которых сумма цифр равна заданному натуральному числу k
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Баканова1415
buleckovd8724
А Дзукаев1562
Anna572
argo951385
Aleksei1463
kristal1
mbobo28311
Novikova Aleksandrovna
moskwa999
Monstr13
Rubber-soul
panasenko68
MArat
Zhanna417