with t as ( select level-1 n from dual connect by level<=8 ) select lpad(to_char(power(10,t1.n)),8,'0')||chr(13) ||lpad(to_char(power(10,t2.n)),8,'0')||chr(13) ||lpad(to_char(power(10,t3.n)),8,'0')||chr(13) ||lpad(to_char(power(10,t4.n)),8,'0')||chr(13) ||lpad(to_char(power(10,t5.n)),8,'0')||chr(13) ||lpad(to_char(power(10,t6.n)),8,'0')||chr(13) ||lpad(to_char(power(10,t7.n)),8,'0')||chr(13) ||lpad(to_char(power(10,t8.n)),8,'0')||chr(13) "В графическом виде" ,chr(97+t1.n)||'1' "1" ,chr(97+t2.n)||'2' "2" ,chr(97+t3.n)||'3' "3" ,chr(97+t4.n)||'4' "4" ,chr(97+t5.n)||'5' "5" ,chr(97+t6.n)||'6' "6" ,chr(97+t7.n)||'7' "7" ,chr(97+t8.n)||'8' "8" from t t1, t t2, t t3, t t4, t t5, t t6, t t7, t t8 where power(2,t1.n)+power(2,t2.n)+power(2,t3.n)+power(2,t4.n)+power(2,t5.n) +power(2,t6.n)+power(2,t7.n)+power(2,t8.n) = 255 and not exists( select null from table(sys.odcinumberlist(t1.n+11,t2.n+21,t3.n+31,t4.n+41,t5.n+51,t6.n+61,t7.n+71,t8.n+81)) x1 ,table(sys.odcinumberlist(t1.n+11,t2.n+21,t3.n+31,t4.n+41,t5.n+51,t6.n+61,t7.n+71,t8.n+81)) x2 where x1.column_value>x2.column_value and abs(trunc(x1.column_value/10)-trunc(x2.column_value/10)) = abs(mod(x1.column_value,10)-mod(x2.column_value,10)) ) * This source code was highlighted with Source Code Highlighter.
Прочел в твиттере у девушки из cboss'a о посте с решением этой задачки на Oracle SQL и захотелось решить самому...
В общем, вот:
Подписаться на:
Комментарии к сообщению (Atom)
Comments
Отправить комментарий