Язык Pascal ABC Больше всего ** свете Паша любит две вещи — музыку и порядок. Каждый...

0 голосов
34 просмотров

Язык Pascal ABC

Больше всего на свете Паша любит две вещи — музыку и порядок. Каждый день, когда Паша возвращается домой, он включает ноутбук, заходит на свою страничку в синей социальной сети и слушает добавленные к себе в аудиозаписи песни. Самое сложное — выбрать, с какой песни сегодня начинать слушать музыку.

Конечно же, Паша мог бы выбирать начальную песню как-нибудь наугад, руководствуясь сегодняшним настроением и текущими предпочтениями в музыке. Но порядка в этом нет никакого. Поэтому Паша придумал для себя четкую схему выбора стартовой песни.

Еще давно, когда Паша в очередной раз страдал от недостатка порядка в окружающем мире, он пообещал себе, что в его аудиозаписях всегда будет такое число песен N, что в числе N цифры не повторяются и среди них нет цифры 0. Такое число казалось ему практически идеальным.

Вот из этого почти идеального числа Паша и решил исходить при выборе начальной песни. Схема выбора выглядит так: сначала Паша смотрит на количество песен у себя в аудиозаписях N. В этом числе он меняет местами цифры, сортируя их по возрастанию. Таким образом он получает идеальное число. Затем он умножает это идеальное число на свое любимое число 9. Здесь можно было бы и остановится, но иногда это произведение получается слишком большим, поэтому в качестве номера начальной песни Паша берет сумму цифр произведения.

По количеству песен у Паши в аудиозаписях выведите номер начальной песни на сегодня.

ВХОДНЫЕ ДАННЫЕ
Дано натуральное число N. Гарантируется, что среди цифр числа N не встречается цифры 0. Все цифры числа N различны.
ВЫХОДНЫЕ ДАННЫЕ
Выведите единственное число — искомый номер начальной песни.

ВХОДНЫЕ ДАННЫЕ
321
ВЫХОДНЫЕ ДАННЫЕ
9


Информатика (50 баллов) | 34 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Var s:string;
ch:char;
n,i,j,err:integer;
begin
readln(n);
str(n,s);
for i := 1 to length(s)-1 do
  for j := 1 to length(s)-i do
  if s[j] > s[j+1] then begin
    ch:=s[j];
    s[j]:=s[j+1];
    s[j+1]:=ch;
  end;
val(s,j,err);
j*=9;
str(j,s);
n:=0;
for i:=1 to length(s) do begin
  val(s[i],j,err);   
  n+=j;
end;
writeln(n);
end.

(4.7k баллов)
0

Неправильные ответы.

0

я не могу подобрать ни одного числа, которое бы не давало 9 в ответе

0

кстати это и является правильным ответом

0

40/40

0

var n:string;
begin
readln(n);
writeln('9')
end.

0

под условие задачи подходит, но не совсем понятна логика...
как из одной песни можно выбрать девятую?)

0

О! Спасибо :з