zadach124.PAS

{* Задача 124 *}

Unit ZADACH124;
Interface
Implementation
Begin
 writeln('Найти кол-во n-значных чисел в десятичной системе счисления, у каждого из которых сумма цифр равна k. При этом в качестве n-значного числа мы допускаем и числа, начинающиеся с одного или нескольких нулей. Например, число 000102 рассматривается как шестизначное, сумма цифр которого равна 3. ');
End.

Program pas13511;

Uses zadach124.pas; {* Эту строку можно удалить *}
Uses crt; {* Подключаем внешние файлы *}
Var {* Необходимые переменные *}
  k      : longint;
  n      : longint;
  i      : longint;
  ii     : longint;
  j      : longint;
  _do    : longint;
  kol_vo : longint;
  sum    : longint;
  text   : String;
  error  : integer;
Begin
  clrscr; {* Очищаем экран *}
  write(' n=');
  readln(n);
  write(' k=');
  readln(k);
  If k = 0 Then
  Begin
    write('ОТВЕТ : 1');
    readln; {* Приостановка программы. Ожидание Enter *}
    halt
  End;
  _do := 9;
  kol_vo := 0;
  For i := 1 To n - 1 Do {* Цикл для i => [1 .. n] *}
    _do := _do * 10 + 9;
  For i := 1 To _do Do {* Цикл для i => [1 .. _do] *}
  Begin
    str(i, text);
    sum := 0;
    For j := 1 To length(text) Do {* Переменная j увеличивается с 1 до length(text) *}
    Begin
      val(text[j], ii, error);
      sum := sum + ii
    End;
    If k = sum Then
      inc(kol_vo); {* Прибавим к kol_vo единицу *}
  End;
  write('ОТВЕТ : ', kol_vo);
  readln; {* Ждем подтверждения пользователя *}
End.