<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Decode360's Blog

    業(yè)精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
      302 隨筆 :: 26 文章 :: 82 評論 :: 0 Trackbacks

    ??? 很早以前就想用PLSQL寫一個算24點的程序了,后來想了一下沒有研究下去,最近上ITPUB的時候正好大家都在討論,在大牛的基礎(chǔ)上修改了一下,基本上思想和算法都是沒有變的,就是學(xué)習(xí)了一下。還有兩個大問題沒有處理好,一是只用了枚舉法,用PLSQL應(yīng)該可以換個更好的遞歸算法的;二是沒有濾重;反正最后的結(jié)果只是最簡單的得到答案而已。

    ?

    ??? 具體的可以參見:

    ??? http://www.itpub.net/viewthread.php?tid=1061129&extra=page%3D1%26amp%3Bfilter%3Ddigest&page=1

    ??? http://www.itpub.net/viewthread.php?tid=1077244&extra=&page=1

    ?

    ?

    ?

    create or replace function f_op (p_n1 number , p_op varchar2 , p_n2 number ) return number

    as

    begin

    ?? return case when p_op = '+' then p_n1 + p_n2

    ?????????????? when p_op = '-' then p_n1 - p_n2

    ?????????????? when p_op = '*' then p_n1 * p_n2

    ?????????????? when p_op = '/' and p_n2<> 0 then p_n1 / p_n2

    ?????????????? else null

    ????????? end ;

    end f_op;

    /

    ?

    ?

    ?

    create or replace procedure pro_24(p1 number , p2 number , p3 number , p4 number ) as

    ?

    r_result number default 0 ;

    ?

    begin

    ?

    ? for r in (

    ????? with t_num as

    ????????? ( select 1 id ,p1 as n from dual

    ?????????? union

    ?????????? select 2 id ,p2 as n from dual

    ?????????? union

    ?????????? select 3 id ,p3 as n from dual

    ?????????? union

    ?????????? select 4 id ,p4 as n from dual),

    ?????????? t_op as

    ????????? ( select '+' as o from dual

    ?????????? union

    ?????????? select '-' as o from dual

    ?????????? union

    ?????????? select '*' as o from dual

    ?????????? union

    ?????????? select '/' as o from dual)

    ?????? select distinct

    ????????????? a.n? as a,

    ????????????? o1.o as o1,

    ????????????? b.n? as b,

    ????????????? o2.o as o2,

    ????????????? c.n? as c,

    ????????????? o3.o as o3,

    ????????????? d.n? as d

    ???????? from t_num a, t_num b, t_num c, t_num d,

    ????????????? t_op? o1, t_op? o2, t_op? o3

    ??????? where a.id not in (b.id, c.id, d.id)

    ????????? and b.id not in (c.id, d.id)

    ????????? and c.id <> d.id) loop

    ?

    ?????? r_result := f_op(f_op(f_op(r.a,r.o1,r.b),r.o2,r.c),r.o3,r.d);

    ?????? if r_result between 23.9 and 24.1 then

    ?????? dbms_output.put_line( '((' ||r.a||r.o1||r.b|| ')' ||r.o2||r.c|| ')' ||r.o3||r.d);

    ?????? end if ; --((a b) c) d

    ??????

    ?????? r_result := f_op(f_op(r.a,r.o1,f_op(r.b,r.o2,r.c)),r.o3,r.d);

    ?????? if r_result between 23.9 and 24.1 then

    ?????? dbms_output.put_line( '(' ||r.a||r.o1|| '(' ||r.b||r.o2||r.c|| '))' ||r.o3||r.d);

    ?????? end if ; --(a (b c)) d

    ??????

    ?????? r_result := f_op(f_op(r.a,r.o1,r.b),r.o2,f_op(r.c,r.o3,r.d));

    ?????? if r_result between 23.9 and 24.1 then

    ?????? dbms_output.put_line( '(' ||r.a||r.o1||r.b|| ')' ||r.o2|| '(' ||r.c||r.o3||r.d|| ')' );

    ?????? end if ; --(a b) (c d)

    ??????

    ?????? r_result := f_op(r.a,r.o1,f_op(f_op(r.b,r.o2,r.c),r.o3,r.d));

    ?????? if r_result between 23.9 and 24.1 then

    ?????? dbms_output.put_line(r.a||r.o1|| '((' ||r.b||r.o2||r.c|| ')' ||r.o3||r.d|| ')' );

    ?????? end if ; --a ((b c) d)

    ???????????

    ?????? r_result := f_op(r.a,r.o1,f_op(r.b,r.o2,f_op(r.c,r.o3,r.d)));

    ?????? if r_result between 23.9 and 24.1 then

    ?????? dbms_output.put_line(r.a||r.o1|| '(' ||r.b||r.o2|| '(' ||r.c||r.o3||r.d|| '))' );

    ?????? end if ; --a (b (c d))

    ??????????

    ? end loop ;

    ?

    end ;

    ?

    /

    ?

    ?

    exec pro_24( 3 , 3 , 8 , 8 );





    -The End-

    posted on 2008-12-28 23:55 decode360-3 閱讀(229) 評論(0)  編輯  收藏 所屬分類: SQL Dev
    主站蜘蛛池模板: 99精品在线免费观看| 久久免费视频观看| 美女的胸又黄又www网站免费| 亚洲av日韩av永久在线观看| 免费人成网站永久| 成人性生交大片免费看好| 最近高清中文字幕免费| 免费中文熟妇在线影片| 免费大黄网站在线看| 亚洲国产精品一区第二页| 亚洲欧洲国产综合| 亚洲av成人一区二区三区在线播放| 成年免费大片黄在线观看com| 国产成人精品无码免费看| 欧亚精品一区三区免费| 四虎精品亚洲一区二区三区| 亚洲乱码精品久久久久..| 亚洲女人初试黑人巨高清| 在线观看亚洲免费视频| 好久久免费视频高清| 无人在线观看免费高清视频| va亚洲va日韩不卡在线观看| 亚洲国产成人精品不卡青青草原| 色偷偷亚洲女人天堂观看欧| 特级毛片在线大全免费播放| 95免费观看体验区视频| 国产gav成人免费播放视频| 国产AV无码专区亚洲AVJULIA| 亚洲一区二区三区在线观看网站| 一级一级毛片免费播放| 免费在线视频你懂的| 内射无码专区久久亚洲| 亚洲网站免费观看| 特级aaaaaaaaa毛片免费视频| 鲁大师在线影院免费观看| 国产免费资源高清小视频在线观看| 亚洲成a人片在线观看日本| 亚洲欧美日韩中文无线码| 久久国产免费一区二区三区| 在线观看免费国产视频| 亚洲AV成人片色在线观看|