用T-SQL打印出杨辉三角

来源:百度知道 编辑:UC知道 时间:2024/05/23 17:29:04
任意行,用T-SQL,什么C,JAVA,C#的就别发了,那个实现起来还是比较简单的
其实我自己想出答案了,只是想看看有没有更好的
现在把我的也写出来吧,没有注释很抱歉
DECLARE @str VARCHAR(500),@temp VARCHAR(500),@space VARCHAR(10),@m INT,@n INT,@i INT,@j INT,@sum VARCHAR(500),@k INT,@st VARCHAR(500)
SELECT @str='1 ',@m=1,@space=' '
PRINT @str
WHILE(@m<20)
BEGIN
SELECT @n=1,@st=''
WHILE(@n<LEN(@str)-1)
BEGIN
SET @i=CONVERT(INT,SUBSTRING(@str,@n,10))
SET @j=CONVERT(INT,SUBSTRING(@str,@n+10,10))
SET @sum=CONVERT(VARCHAR(500),(@i+@j))
SELECT @temp='',@k=0
WHILE(@k<10-LEN(@sum))
BEGIN
SET @temp=@temp+@space
SET @k=@k+1
END
SET @st=@st+@sum+@temp
SET @n=@n+10
END
SET @m=@m+1
SET @str='1 '+@st+'1 '
PRINT @str
END

declare @i int,@j varchar(20)
set @i=1
set @j=''
while @i<10
begin
set @j=@j+'*'
print @j
set @i=@i+1
end
太有难度了
一个三角形出来了

declare @i int,@j varchar(20),@k varchar(30),@m varchar(30)
set @i=10
set @j=' '
set @k='*'
while @i>0
begin
set @m=substring(@j,1,@i)+@k
set @k=@k+'**'
print @m
set @i=@i-1
end