<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
    主站蜘蛛池模板: 亚洲伊人久久成综合人影院| 女人18毛片水真多免费看| 亚洲精品视频免费观看| 男男gvh肉在线观看免费| 亚洲AV无码专区在线电影成人| 另类小说亚洲色图| 亚洲国产精品13p| 亚洲国产免费综合| 亚洲国产精品无码专区影院 | 亚洲精品国自产拍在线观看| 视频一区二区三区免费观看| 亚洲Av无码国产情品久久| 亚洲精品视频免费看| 免费福利网站在线观看| 亚洲日日做天天做日日谢| 香蕉高清免费永久在线视频| 亚洲欧洲国产日韩精品| 69式互添免费视频| 亚洲精品理论电影在线观看| 四虎亚洲国产成人久久精品| 亚洲一卡2卡4卡5卡6卡残暴在线| 免费人成在线观看视频高潮| 亚洲第一页在线观看| 大陆一级毛片免费视频观看i| 久久精品国产亚洲av日韩| 最近最好的中文字幕2019免费 | 亚洲av永久无码精品秋霞电影秋| 亚洲一区二区免费视频| 亚洲av无码片在线观看| 69精品免费视频| 亚洲成av人在线观看网站| 国产午夜亚洲不卡| 最近中文字幕mv免费高清视频8| 久久精品国产亚洲网站| 成人免费福利视频| 在线播放免费人成视频网站| 18gay台湾男同亚洲男同| 国产成人免费网站在线观看| 亚洲AV无码一区二区乱子仑| 亚洲国产精品无码久久SM| 91嫩草国产在线观看免费|