08.01.2014, 18:45 | #21 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
|
08.01.2014, 18:46 | #22 (permalink) | |
Новичок
Регистрация: 03.12.2013
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Цитата:
|
|
08.01.2014, 18:49 | #23 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ну нет, не пойдёт! Это даёт в ответе 144. Надо так:
Код:
var n,m,x,y,z:integer; begin n:=0; for x:=1 to 9 do for y:=0 to 9 do for z:=0 to 9 do if x+y+z=13 then inc(n); m:=0; for x:=0 to 9 do for y:=0 to 9 do for z:=0 to 9 do if x+y+z=13 then inc(m); writeln('n=',n*m); readln end. |
08.01.2014, 18:57 | #24 (permalink) | |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Я уже исправил, там надо дополнительное условие дописать, смотрите еще раз
Цитата:
А в целом для решения задачи в целом нафиг не нужно было заводить массив, можно было обойтись дополнительной переменной Полное решение у меня есть где-то в загашниках, лет семь назад с детишками разбирали эту задачу от и до на 4 языках программирования, а сегодня сам еле-еле вспомнил решение А всё некорректная формулировка задачи виновата
__________________
Убить всех человеков! |
|
08.01.2014, 19:06 | #25 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Избыточно! Можно короче:
if (x+y+z=13) and (a+b+c=13) then inc(n); Кроме того - нерационально: мой вариант (с n и m) предполагает 2000 прохождений цикла, а Ваш - 1000000 (грубо говоря). Тогда уж проще тупым перебором, как у меня в программе. Те же 900000. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
08.01.2014, 19:14 | #26 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Можно, но не нужно.
И вообще, хоть и с избыточным кодом, но моё, не стыренное Есть фирмы, где программистам платят по количеству строк кода, так там такое накручивают, что мой избыточный код - не более чем шалость , но вы правы, исправлю сейчас. Насчет неоптимальности алгоритма - я же предупредил, что это вариант тупого перебора 9*10*10*10*10*10=900000 значений aka брут
__________________
Убить всех человеков! |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|