2,4,9,10怎样可以通过九宫格加减乘除等于4,平方开方等于1到100?

9434人阅读
SQL--(使用技巧)(4)
原贴地址:
这九个按顺序排列的数,要求在它们之间插入若干个+,-,*,/ ,
使其结果正好等于如:1*2*3*4+5+6+7*8+9=100&&
---------------------------------------------------------------------
--& Author : htl258(Tony)
--& Date&& :
--& Version:Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)
--&&&&&&&&& Jul& 9 :34
--&&&&&&&&& Copyright (c)
Microsoft Corporation
--&&&&&&&&& Developer Edition on Windows NT 5.1 &X86& (Build 2600: Service Pack 3)
---------------------------------------------------------------------
SET NOCOUNT ON
DECLARE @T TABLE(R NVARCHAR(1))
INSERT @T SELECT '+'
UNION ALL SELECT '-'
UNION ALL SELECT '*'
UNION ALL SELECT '/'
DECLARE @S NVARCHAR(50),@I DEC(28,10)
DECLARE @R TABLE(RESULT NVARCHAR(30))
DECLARE C CURSOR FOR
&&& SELECT 'SELECT @I=1.'+A.R+'2.'+B.R+'3.'+C.R+'4.'
&&&&&& +D.R+'5.'+E.R+'6.'+F.R+'7.'+G.R+'8.'+H.R+'9.'
&&& FROM @T A,@T B,@T C,@T D,@T E,@T F,@T G,@T H
FETCH C INTO @S
WHILE @@FETCH_STATUS=0
&&& EXEC SP_EXECUTESQL @S,N'@I DEC(28,10) OUT',@I OUT
&&& IF CEILING(@I)=100 AND FLOOR(@I)=100
&&& INSERT @R SELECT REPLACE(STUFF(@S,1,CHARINDEX('=',@S),''),'.','')
&&& FETCH C INTO @S
DEALLOCATE C
SET NOCOUNT OFF
SELECT * FROM @R
------------------------------
1+2+3+4+5+6+7+8*9
1*2*3+4+5+6+7+8*9
1-2*3+4*5+6+7+8*9
1+2*3+4*5-6+7+8*9
1-2*3-4+5*6+7+8*9
1-2*3-4-5+6*7+8*9
1+2+3-4*5+6*7+8*9
1*2*3-4*5+6*7+8*9
1*2*3*4+5+6+7*8+9
1*2*3*4+5+6-7+8*9
1+2-3*4+5*6+7+8*9
1+2-3*4-5+6*7+8*9
1-2+3*4*5+6*7+8-9
1-2+3*4*5-6+7*8-9
1+2*3*4*5/6+7+8*9
(15 行受影响)
--循环法:原著happycell188(喜喜) 改编完善: htl258(Tony)
set nocount on
declare @result nvarchar(50),@temp_int dec(28,10),@str nvarchar(5),
&&& @i1 int,@str1 char(1),
&&& @i2 int,@str2 char(1),
&&& @i3 int,@str3 char(1),
&&& @i4 int,@str4 char(1),
&&& @i5 int,@str5 char(1),
&&& @i6 int,@str6 char(1),
&&& @i7 int,@str7 char(1),
&&& @i8 int,@str8 char(1)
declare @temp_tb table(result nvarchar(30))
select @str='+/-*',@i1=1,@i2=1,@i3=1,@i4=1,@i5=1,@i6=1,@i7=1,@i8=1
--函数主体
while(@i1&5)
&&& while(@i2&5)
&&&&&&& while(@i3&5)
&&&&&&& begin
&&&&&&&&&&& while(@i4&5)
&&&&&&&&&&& begin
&&&&&&&&&&&&&&& while(@i5&5)
&&&&&&&&&&&&&&& begin
&&&&&&&&&&&&&&&&&&& while(@i6&5)
&&&&&&&&&&&&&&&&&&& begin
&&&&&&&&&&&&&&&&&&&&&&& while(@i7&5)
&&&&&&&&&&&&&&&&&&&&&&& begin
&&&&&&&&&&&&&&&&&&&&&&&&&&& while(@i8&5)
&&&&&&&&&&&&&&&&&&&&&&&&&&& begin
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& select
&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&@str1=substring(@str,@i1,1),
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& @str2=substring(@str,@i2,1),
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& @str3=substring(@str,@i3,1),
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& @str4=substring(@str,@i4,1),
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& @str5=substring(@str,@i5,1),
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& @str6=substring(@str,@i6,1),
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& @str7=substring(@str,@i7,1),
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& @str8=substring(@str,@i8,1)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& select @result='select @a=1.'+@str1+'2.'
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& +@str2+'3.'+@str3+'4.'+@str4+'5.'
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& +@str5+'6.'+@str6+'7.'+@str7+'8.'+@str8+'9.'
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& exec sp_executesql @result,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& N'@a dec(28,10) output',@temp_int output
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& if floor(@temp_int)=100 and ceiling(@temp_int)=100
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& begin
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& insert into @temp_tb(result)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& select right(replace(@result,'.',''),17)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& end
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& select @i8=@i8+1
&&&&&&&&&&&&&&&&&&&&&&&&&&& end
&&&&&&&&&&&&&&&&&&&&&&& select @i7=@i7+1,@i8=1
&&&&&&&&&&&&&&&&&&&&&&& end
&&&&&&&&&&&&&&&&&&& select @i6=@i6+1,@i7=1,@i8=1
&&&&&&&&&&&&&&&&&&& end
&&&&&&&&&&&&&&& select @i5=@i5+1,@i6=1,@i7=1,@i8=1
&&&&&&&&&&&&&&& end
&&&&&&&&&&& select @i4=@i4+1,@i5=1,@i6=1,@i7=1,@i8=1
&&&&&&&&&&& end
&&&&&&& select @i3=@i3+1,@i4=1,@i5=1,@i6=1,@i7=1,@i8=1
&&&&&&& end
&&& select @i2=@i2+1,@i3=1,@i4=1,@i5=1,@i6=1,@i7=1,@i8=1
select @i1=@i1+1,@i2=1,@i3=1,@i4=1,@i5=1,@i6=1,@i7=1,@i8=1
set nocount off
--获取结果
select result from @temp_tb
------------------------------
1+2+3+4+5+6+7+8*9
1+2+3-4*5+6*7+8*9
1+2-3*4+5*6+7+8*9
1+2-3*4-5+6*7+8*9
1+2*3+4*5-6+7+8*9
1+2*3*4*5/6+7+8*9
1-2+3*4*5+6*7+8-9
1-2+3*4*5-6+7*8-9
1-2*3+4*5+6+7+8*9
1-2*3-4+5*6+7+8*9
1-2*3-4-5+6*7+8*9
1*2*3+4+5+6+7+8*9
1*2*3-4*5+6*7+8*9
1*2*3*4+5+6+7*8+9
1*2*3*4+5+6-7+8*9
(15 行受影响)
本文来自CSDN博客,转载请标明出处:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:610061次
积分:7565
积分:7565
排名:第2103名
原创:122篇
转载:26篇
评论:513条
文章:14篇
阅读:17524
文章:58篇
阅读:159095
(1)(5)(9)(5)(4)(1)(2)(1)(1)(1)(2)(1)(4)(5)(5)(1)(2)(6)(2)(2)(11)(58)(1)(2)(9)(1)(1)(2)(3)(1)2,4,5,9,10及100这六个数字,如何运用加减乘除得出566?
伪面的笑容Ko2N
前面我看错题目了,我看成了56,对不起!
为您推荐:
其他类似问题
好好考虑下~
扫描下载二维码四个9怎么算出等于100,可以用加减乘除和括号,
都是各位数字的9吗?
为您推荐:
其他类似问题
99+9/9=100
扫描下载二维码}

我要回帖

更多关于 平方根的加减乘除 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信