-- 高中学的组合公式,有人能用SQL Server 写个函数么?--
http://topic.csdn.net/u/20110829/23/02daf38d-7e71-412f-b2b5-b404dfef62f6.html
-- 问了我群里的人,竟然没一个能写出来,悲哀!
[解决办法]
朋友给我出了道他们公司的一道笔试题,我想了许久,没想出来,请教各位
大家可以用自己熟悉的语言写写,求思路:
一个袋子装有5个球,每个球都标注了编号:1、2、3、4、5
一个人只往往袋子取一次,每次取的数量不等。
问有多少种组合?每个组合是?
[解决办法]
.........
create table tb1(no char(1))insert into tb1 select 1 union select 2 union select 3 union select 4 union select 5select * from tb1 unionselect a.no+b.no from tb1 a,tb1 b where a.no>b.nounionselect a.no+b.no+c.no from tb1 a,tb1 b,tb1 c where a.no>b.no and b.no>c.nounionselect a.no+b.no+c.no+d.no from tb1 a,tb1 b,tb1 c,tb1 d where a.no>b.no and b.no>c.no and c.no>d.nounionselect '12345'/*no-----11234522133132321441424214343143243215515252153531532532154541542542154354315432
[解决办法]
CREATE FUNCTION FN_C( @N INT ,@R INT )RETURNS INTASBEGINIF @N<= 0 RETURN 1DECLARE @RET INTDECLARE @I INTSET @I = 1SET @RET = 1WHILE @I <= @R BEGIN SET @RET = @RET * (@N - @I + 1) / @I SET @I = @I + 1END RETURN @RETENDGOSELECT DBO.FN_C(5,1)+DBO.FN_C(5,2)+DBO.FN_C(5,3)+DBO.FN_C(5,4)+DBO.FN_C(5,5)-- 结果31
[解决办法]
动态的语句懒得写了