總網頁瀏覽量

2013年1月16日 星期三

列印數字金字塔?



create procedure number_triangle
@number int
AS

declare @num int =@number
declare @i int =1 --1st while index
declare @j int  --2nd while index
declare @k int  --3rd while index
declare @L int  --4rd while index
while @i<=@num
begin
 declare @result varchar(1000)= null
 set @j = 1
 set @L = @i
 set @k = 1
--印左邊數字
 while @j<=@i
 begin
  if @result is null
  set @result = (select CONVERT(varchar(20),@j))
  else
  set @result = @result+(select Convert(varchar(20), @j))

 set @j = @j +1
 end
--印中間空白字元
 if @i<10
 begin
  while @k <=(@num-@i+@num-9)*2
  begin
  set @result = @result+' '
  set @k = @k+1
  end
 end
 else
 begin
  while @k <=(@num-@i)*4
  begin
  set @result = @result+' '
  set @k = @k+1
  end
 end
--印右邊數字
 while @L >=1
 begin
  set @result = @result +(select Convert(varchar(20), @L))
  set @L = @L -1
 end

print @result
set @i = @i +1
end
GO
exec number_triangle 9
exec number_triangle 10
exec number_triangle 99

沒有留言:

張貼留言