不打算写下去的游戏要求

CREATE FUNCTION F_ww2 (@mula varchar(100),@prioritydata varchar(20))
RETURNS varchar(100)
AS
begin
declare @priority varchar(10),@thepriority int
while charindex('-',@prioritydata)>0
begin
 declare @workmula varchar(50)
 select @priority=left(@prioritydata,charindex('-',@prioritydata)-1),@prioritydata=stuff(@prioritydata,1,charindex('-',@prioritydata),'')
 set @workmula=@mula
 while(@priority)>1
 begin
 set @priority=@priority-1
 set @workmula=stuff(@workmula,PATINDEX('%[-+*/]%',@workmula),1,'~')
 end
 set @thepriority= PATINDEX('%[-+*/]%',@workmula)
 
 declare @var varchar(50),@work varchar(50), @vv varchar(2),@llrr int,@workint int,@printvar varchar(100)
 select @vv = '',@llrr=0,@workint=0
 select @var=substring(@mula,@thepriority+1,len(@mula))+'/',@work=@var
 while len(@work)>0
 begin
  set @workint=@workint+1
  select @vv=left(@work,1),@work = right(@work,len(@work)-1)
  set @llrr=@llrr+case when @vv='(' then 1 when @vv=')' then -1 else 0 end
  if (@llrr=0)
  begin
   set @printvar=stuff(@var,@workint+PATINDEX('%[-+*/]%',@work),0,')')
   set @work=''
  end
 end
 select @var='/'+substring(@mula,1,@thepriority-1),@work=@var,@workint=len(@var)
 while len(@work)>0
 begin
  select @vv=right(@work,1),@work = left(@work,len(@work)-1)
  set @llrr=@llrr+case when @vv=')' then 1 when @vv='(' then -1 else 0 end
  if (@llrr=0)
  begin
   set @mula =stuff(@var,@workint-PATINDEX('%[-+*/]%',REVERSE(@work))+1,0,'(')+ substring(@workmula,@thepriority,1) + @printvar
   set @work=''
  end
  set @workint=@workint-1
 end
 set @mula= substring(@mula,2,len(@mula)-2)
end
RETURN @mula
end


print dbo.F_ww2('1/2/3/4/5/6/7','1-6-3-5-2-4') 

--多数组合

--随便组了一下五个数字下的组合~~~发现有70多万条!!!所以不打算写下去了~~此需求到此结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值