1
222
33333
4444444
555555555
66666666666
7777777777777
888888888888888
99999999999999999 就是类似的一个锥型在一行显示
------解决思路----------------------
显示在一行的方法不知道,只知道打印
DECLARE @i INT,@m int
SET @i=1
WHILE @i<=9
BEGIN
SET @m=(9-@i)/2
IF @i%2=0
PRINT REPLICATE(' ',@m*2+1)+REPLICATE(CAST(@i AS VARCHAR(1))+' ',@i)+REPLICATE(' ',@m*2)
ELSE
PRINT REPLICATE(' ',@m*2)+REPLICATE(CAST(@i AS VARCHAR(1))+' ',@i)+REPLICATE(' ',@m*2)
SET @i=@i+1
END
------解决思路----------------------
declare @i int,@len int,@max int;
set @i=1; --开始数字
set @len=17; --长度
set @max=9; --最大数字
while @i<=@max
begin
print replicate(' ',@len/2)+replicate(cast(@i as varchar),@i*2-1)+replicate(' ',@len/2);
set @len=@len-2;
set @i=@i+1
end
/*
1
222
33333
4444444
555555555
66666666666
7777777777777
888888888888888
99999999999999999
*/