项目 ,价格
a    ,1
b    , 2
c    , 3
d    , 4
先要给一个合计,比如是5,要得到的是b和c,因5是由b+c这个两个项目的合计。用什么算法,谢谢!!!

解决方案 »

  1.   

    那要給个6
    是不是就要得到a+b+c,b+d?
      

  2.   

    如果有n条记录,则有2的n次方种组合。
    即每条记录可以有2种选择,加上该记录或不加该记录。如果这个n为20则有100W种可能。所以n应该不会很大。这样的话,可以写一个存储过程来实现。具体的实现,个人觉得可以用递归算法。
    由于多年没用过PLSQL了,语法上很生疏了,你自己试试。
      

  3.   

    FYI: http://bbs.zdnet.com.cn/thread-1055759-1-1.html
    这样的需求可以考虑在JAVA等逻辑层实现
      

  4.   

    你这个深了! 要是给个6会有很多的组合!a+a+a+a+a+a,a+a+a+a+b,a+a+a+c,a+a+d,a+a+b+b,b+b+b,........等! 这谁能给你算!