首页 > 技术文章 > 使用SQL循环打印'*'菱形

liumengchen-boke 2016-11-23 14:26 原文

菱形每一行都是由n个' ' + n 个'**' + 1个'*' 组成的

例如高度为9的菱形(共print 9次),*最多的一次print为第五次第五次就是0个' '  + 4个'**' + 1个'*' ,所以每一行都有 (高度+1)/2的输出对象(为*或者**、' '),

所以第一行就是4个 ' ' + 0个'**' + 1 个'*',

第二行 3个' ' + 1个 '**' + 1个'*'。。。以此类推,下面是SQL代码

declare @i int ,@j int ,@s nvarchar(max)
set @i = 1 
while @i <= 9
begin
	set @s = ''
	set @j = 1
	while @j < 5
	begin
		if ABS(@i - 5) >= @j
		begin
			set @s += ' '
		end
		else
		begin
			set @s += '**'
		end
		set @j += 1
	end
	set @s += '*'
	print @s
	set @i +=1
end

  

推荐阅读