Автор | Сообщение |
|
Отправлено: 10.03.12 20:30. Заголовок: [C4] Задача №24
Хотелось бы услышать мнение участников форума. Является ли такое решение задачи №24 оптимальным? const Number:set of char=['0'..'9']; var i,j:integer; s:string; c,x:char; k:boolean; begin s:=''; repeat read(c); if c in Number then begin s:=s+c; k:=true; end; until c='.'; if k=true then begin for i:=1 to length(s)-1 do begin for j:=i+1 to length(s) do begin if s[ i ]<s[j] then begin x:=s[ i ]; s[ i ]:=s[j]; s[j]:=x; end; end; end; writeln('Да'); for i:=1 to length(s) do write(s[ i ]); end else writeln('Нет'); end. С уважением, Дмитрий. Исправил write(s [ i] )
|
|
|
Новых ответов нет
[см. все]
|
|
|
| постоянный участник
|
Сообщение: 9
|
|
Отправлено: 11.03.12 08:14. Заголовок: Dmitry78 пишет: for..
Dmitry78 пишет: цитата: | for i:=1 to length(s)-1 do begin for j:=i+1 to length(s) do begin if s[ i ]<s[j] then begin x:=s[ i ]; s[ i ]:=s[j]; s[j]:=x; end; end; end; |
| Это классический "пузырек" его сложность О(n 2) если использовать массив счетчиков, то сложность будет О(n). Dmitry78 пишет: цитата: | for i:=1 to length(s) do write(s); |
|
видимо должно быть for i:=1 to length(s) do write(s [ i ]); или write(s);
|
|
|
|
Отправлено: 11.03.12 18:29. Заголовок: Уважаемый Константин..
Уважаемый Константин Юрьевич! Алгоритм решения задачи №37 неверно вычислит контрольное значение при таких входных данных: 6 12 18 0 216. Действительно, max6=18, max=0, max2=18, max3=0 и с=0, а не 216! Прокомментируйте, пожалуйста.
|
|
|
|
| Администратор
|
Сообщение: 159
|
|
Отправлено: 11.03.12 19:00. Заголовок: Архипова пишет: Алго..
Архипова пишет: цитата: | Алгоритм решения задачи №37 неверно вычислит контрольное значение при таких входных данных: 6 12 18 0 216. Действительно, max6=18, max=0, max2=18, max3=0 и с=0, а не 216! Прокомментируйте, пожалуйста. |
|
Комментирую. Это ошибка, в программе не хватает одной строчки. Сейчас на сайте всё исправлено. Спасибо!
|
|
|
|
| постоянный участник
|
Сообщение: 28
|
|
Отправлено: 13.03.12 20:06. Заголовок: Архипова пишет: при..
Архипова пишет: цитата: | при таких входных данных: 6 12 18 0 216 |
| Мне кажется, такие данные невозможны, т.к. ноль ПО УСЛОВИЮ является не членом последовательности, а признаком конца ввода.
|
|
|
|
| Администратор
|
Сообщение: 162
|
|
Отправлено: 13.03.12 20:10. Заголовок: tavabar пишет: Мне к..
tavabar пишет: цитата: | Мне кажется, такие данные невозможны, |
|
Ноль - это по условию конец ввода основной последовательности, а 216 - контрольная сумма. Все нормально.
|
|
|
|