任何人都可以帮助我使用我正在努力做的vb代码。在编程方面,我只是一个新手。
运动说: 从用户获取整数n,根据用户输入在屏幕上打印出以下模式 模式1 - 当n为3时,总共有5行 模式2 - 当n为4时,总共有7行
在输出模式中,1应该如下所示
*
***
*****
***
*
答案 0 :(得分:1)
分裂和征服是解决这些问题的方法,就像大多数计算问题一样。
因此将您的任务分解为子问题。我可以看到三个子问题:
计算行数
创建一个以 n 作为输入的函数,并返回总行数。我会让你决定这个的逻辑,也许你可以扩展它,以便它适用于更广泛的数字?或许返回值背后隐藏着一个隐藏的公式或特定的逻辑?或者perhps你只需要一个选择案例陈述。
计算出最大的线宽
考虑如何在逻辑上解决这个问题,在这一步之后你需要了解什么才能继续?我想你需要弄清楚中间行的宽度是多少。那将是一个很好的起点。我们知道调用前一个函数的最大线宽,这是我们计算出最大线宽所需的所有信息。
打印生成的图片
根据您之前编写的函数以及中间行的最大大小,您现在知道此图片中的行数。您现在应该能够循环打印正确的字符,但是您必须弄清楚如何填充空格以正确对齐字符。
答案 1 :(得分:0)
输入设置钻石的中点(峰值)
' 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风格调整,但内容应该按原样运行。