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

0 голосов

Язык Pascal ABC

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

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

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

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

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

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

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


спросил от (50 баллов) в категории Информатика
1 Ответ
0 голосов
ответил от Одаренный (4.7k баллов)
 
Лучший ответ

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.

оставил комментарий от (50 баллов)

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

оставил комментарий от Одаренный (4.7k баллов)

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

оставил комментарий от Одаренный (4.7k баллов)

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

оставил комментарий от Одаренный (4.7k баллов)

40/40

оставил комментарий от Одаренный (4.7k баллов)

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

оставил комментарий от Одаренный (4.7k баллов)

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

оставил комментарий от (50 баллов)

О! Спасибо :з

...