`
yiyeqinghuasoon
  • 浏览: 641843 次
文章分类
社区版块
存档分类
最新评论

利用算术(加减乘除)的方法实现从1到9计算等于100

 
阅读更多

原贴地址:http://topic.csdn.net/u/20100414/13/01a10c02-8230-4f0b-89d1-e0a51a64a97c.html?seed=1728387417

123456789

这九个按顺序排列的数,要求在它们之间插入若干个+-*/

使其结果正好等于如:1*2*3*4+5+6+7*8+9=100

---------------------------------------------------------------------

-- Author : htl258(Tony)

-- Date : 2010-04-19 01:05:31

-- Version:Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)

-- Jul 9 2008 14:43:34

-- Copyright (c) 1988-2008 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

OPEN C

FETCH C INTO @S

WHILE @@FETCH_STATUS=0

BEGIN

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

END

CLOSE C

DEALLOCATE C

SET NOCOUNT OFF

SELECT * FROM @R

/*

RESULT

------------------------------

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)

begin

while(@i2<5)

begin

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

end

select @i1=@i1+1,@i2=1,@i3=1,@i4=1,@i5=1,@i6=1,@i7=1,@i8=1

end

set nocount off

--获取结果

select result from @temp_tb

/*

result

------------------------------

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博客,转载请标明出处:http://blog.csdn.net/htl258/archive/2010/04/14/5486144.aspx

分享到:
评论

相关推荐

    利用栈进行算术表达式的运算

    利用栈进行算术表达式的运算。以#结束表达式的输入。包括加减乘除括号等字符。

    基于栈的算术表达式求值算法

    实验题目: 基于栈的算术表达式求值算法 实验环境: 学习完了数据结构第三章内容栈和队列 ...程序运行时,输入合法的算术表达式(中间值及最终结果要在0~9之间,可以包括加减乘除和括号),便可输出相应的计算结果。

    华中科技大学计算机组成原理实验二运算器实验Logisim源文件8位可控加减法器设计32位算术逻辑运算单元ALU设计

    华中科技大学计算机组成原理实验二运算器实验Logisim源文件,里面有8位可控加减法器设计、32位算术逻辑运算单元ALU设计、四位先行进位74182、四位快速加法器 、8位快速加法器、16位快速加法器、5位阵列乘法、6位补码...

    设计一个4位的算术逻辑单元

    ①4位算术逻辑单元能够进行下列运算:加法、减法、加1、减1、与、或、非和传递。用3位操作码进行运算,控制方式如下表所示。 运算操作码  运 算 对标识位Z和C的影响 000 result ←A+B 影响标志位Z和C 001 result ...

    计算器的实现

    用Qt实现的计算器,有简单的加减乘除,以及浮点数的运算

    数据结构大作业加3000字心得

    目的: 1.掌握栈的定义及实现; 2.掌握利用栈求解算术表达式的...(1) 本程序要能够实现3位数以上的加减乘除运算和括号运算。(30分) (2) 程序要具在一定的健壮性,即当输入数据非法时,程序必须进行判断。(30分)

    C语言:中缀算术表达式求值(栈 附答案).docx

    C语言一道练习如何建立栈和运用栈来进行...里面涉及加减乘除括号的优先级考虑和入栈出栈的规则来实现计算中缀表达式。作为数据结构中比较重要的一个结构——栈,我们可以通过这道题更加好的理解栈的用途并熟悉栈的运用

    java简单计算器开发GUI图形化界面设计与实现(项目源码+课程设计报告)

    1. 课程目的 1.1. 课程性质 JAVA 程序设计是计算机...编写一个计算器,可实现加减乘除等一系列运算。 编程要求:选择某一种运算后,根据输入的数据给出运算结果。 编程提示:在设计出的计算器界面上,。。。。。。

    计算器,计算后缀表达式,转中缀表达式为后缀表达式

    假设操作数均是正实数,运算符只含加减乘除四种运算符。编程利用“算符优先法”求算术表达式的值。用户可选择需要进行的操纵,包括后缀表达式的计算,中缀表达式转为后缀表达式,清屏和退出,界面清晰,操作简便,且...

    java课程设计-科学计算器.doc

    4 详细设计 4.1功能实现: 加减乘除求余以及指数运算 其他运算 、求平方根 、对数运算 、余弦运算 、正切运算 、e的指数运算 、倒数运算 主要方法说明 public cos(double x) //求x的余弦函数 public tan (double x)...

    Java范例开发大全 (源程序)

     实例155 实现加减乘除的方法 240  8.3 面向对象的设计模式 241  实例156 Singleton单例模式 242  实例157 招聘(简单工厂模式) 243  实例158 同学聚会(工厂方法模式) 244  实例159 图书展(抽象工厂...

    java范例开发大全(pdf&源码)

    实例155 实现加减乘除的方法 240 8.3 面向对象的设计模式 241 实例156 Singleton单例模式 242 实例157 招聘(简单工厂模式) 243 实例158 同学聚会(工厂方法模式) 244 实例159 图书展(抽象工厂模式) 246 实例160...

    java范例开发大全源代码

     实例155 实现加减乘除的方法 240  8.3 面向对象的设计模式 241  实例156 Singleton单例模式 242  实例157 招聘(简单工厂模式) 243  实例158 同学聚会(工厂方法模式) 244  实例159 图书展(抽象...

    java范例开发大全

    实例155 实现加减乘除的方法 240 8.3 面向对象的设计模式 241 实例156 Singleton单例模式 242 实例157 招聘(简单工厂模式) 243 实例158 同学聚会(工厂方法模式) 244 实例159 图书展(抽象工厂模式) 246 实例160...

    Java范例开发大全(全书源程序)

    实例155 实现加减乘除的方法 240 8.3 面向对象的设计模式 241 实例156 Singleton单例模式 242 实例157 招聘(简单工厂模式) 243 实例158 同学聚会(工厂方法模式) 244 实例159 图书展(抽象工厂模式) 246 ...

    人工智能的重要意义及作用.doc

    (3) 运算器,模拟人脑的计算、判断和选择功能,能进行加减乘除等算术运算和逻辑运算。 (4) 控制器,人脑的分析综合活动以及通过思维活动对各个协调工作的控制功能,根据存贮器 内的程序,控制计算机的各个部分协调...

    2009达内SQL学习笔记

    2、对数据类型的列可进行运算(如加减乘除)。 3、对列起别名:有直接起别名,加AS起别名,用双引号起别名等三种方法 (单引号,引起字符串;双引号,引起别名。起别名有符号,或者区分大小写时,必须用双引号) 多...

Global site tag (gtag.js) - Google Analytics