任何人都可以用我正在努力做的vb代码来帮助我。在编程方面,我只是一个新手。模式设计的vbscript代码
练习说: 获得从用户的整数n,打印出根据用户输入在屏幕上下面的图案 模式1 - 当n是3时,有5行总 图案2 - 时,n为4,有7排共计
在输出模式1应该是这样的
*
***
*****
***
*
任何人都可以用我正在努力做的vb代码来帮助我。在编程方面,我只是一个新手。模式设计的vbscript代码
练习说: 获得从用户的整数n,打印出根据用户输入在屏幕上下面的图案 模式1 - 当n是3时,有5行总 图案2 - 时,n为4,有7排共计
在输出模式1应该是这样的
*
***
*****
***
*
分而治之是解决这些问题的方式,与大多数的计算问题。
因此,将您的任务分解为子问题。我可以看到三个子问题:
计算行数
创建一个函数,它ň作为输入,并返回行的总数。我会留给你决定这个逻辑,也许你可以扩展它,使其适用于更广泛的数字范围?也许有一个隐藏的公式或返回值背后的特定逻辑?或者说,你只需要一个选择案例陈述。
工作了最大的线宽
想想如何在逻辑上解决这个问题,你有什么需要了解的格局继续此步骤后?我认为你需要弄清楚中间行的宽度是多少。那将是一个很好的起点。我们知道调用前一个函数的最大线宽,这就是我们需要计算出最大线宽的所有信息。
打印结果图像
你现在知道中行基于以前写的功能,以及中间行的最大尺寸这张照片的数量。您现在应该可以正确地循环打印字符,但是您必须弄清楚如何填充空格以正确对齐字符。
输入设置你的钻石
' Building up to the peak
for (i = 1, i <= input, i++)
{
dots = 1 + (2 * (i-1))
peakdots = 1 + (2 * (input - 1))
spaces = (peakdots - dots)/2
wscript.echo spaces & dots & spaces
}
' On the way back down
for (i = (input - 1), i > 1, i--)
{
dots = 1 + (2 * (i-1))
peakdots = 1 + (2 * (input - 1))
spaces = (peakdots - dots)/2
wscript.echo spaces & dots & spaces
}
for循环需要从C风格的微调的中点(峰值),但内容应该工作原样。