首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求一算法,大牛们来吧!该怎么处理

2013-01-01 
求一算法,大牛们来吧!本帖最后由 abclm 于 2012-11-22 18:17:17 编辑--求算法--A+B+CA*B*C--1.ABC的位置

求一算法,大牛们来吧!
本帖最后由 abclm 于 2012-11-22 18:17:17 编辑


--求算法
--A+B+C=A*B*C
--1.ABC的位置可以调换
--2.ABC的值可以相同
--3.只能为正数,不能为0
--4.必须为整数
--例如:3+2+1=2*1*3 


[解决办法]
declare @i int,@j int,@k int;
set @i=0
while @i<=100 
begin
  set @j=0;
  while @j<=100
  begin
    set @k=0;
    while @k<=100
    begin
      if @i*@j*@k=@i+@j+@k
      print ltrim(@i)+'*'+ltrim(@j)+'*'+ltrim(@k)+'='+ltrim(@i)+'+'+ltrim(@j)+'+'+ltrim(@k);
      set @k=@k+1;
    end
    set @j=@j+1;
  end
  set @i=@i+1;
end

/**
0*0*0=0+0+0
1*2*3=1+2+3
1*3*2=1+3+2
2*1*3=2+1+3
2*3*1=2+3+1
3*1*2=3+1+2
3*2*1=3+2+1
**/

[解决办法]
修改了一下楼上的,不过你这个不像是什么算法吧?仅仅是打印出来而已?
DECLARE @i INT ,
     @j INT ,
     @k INT ;
 SET @i = 1
 WHILE @i <= 100 
     BEGIN
         SET @j = 0 ;
         WHILE @j <= 100 
             BEGIN
                 SET @k = 0 ;
                 WHILE @k <= 100 
                     BEGIN
                         IF @i * @j * @k = @i + @j + @k 
                             PRINT LTRIM(@i) + '*' + LTRIM(@j) + '*' + LTRIM(@k)
                                 + '=' + LTRIM(@i) + '+' + LTRIM(@j) + '+'
                                 + LTRIM(@k) ;
                         SET @k = @k + 1 ;
                     END
                 SET @j = @j + 1 ;
             END


         SET @i = @i + 1 ;
     END
  
 /**
 1*2*3=1+2+3
 1*3*2=1+3+2
 2*1*3=2+1+3
 2*3*1=2+3+1
 3*1*2=3+1+2
 3*2*1=3+2+1
 **/

热点排行