日期:2014-05-17  浏览次数:20512 次

求一算法,大牛们来吧!
本帖最后由 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 ;
         &