【发布时间】:2020-11-01 11:11:15
【问题描述】:
这个程序是用 C# 和斐波那契数列和数组创建一个波状结构。序列的编号位于末尾,星号等于当前行前面的编号。这一切都是使用 For 循环完成的,并且上限由数组完成,我通过使用数组的 .Length 方面解决了限制器问题,但我不了解如何在此序列中正确使用数组的概念。
代码的第一部分我使用具有 12 个索引的数组构建了序列,因为我只需要 11 个第一个斐波那契序列。 我遇到的问题在代码的第二部分。
class Program
{
static void Main(string[] args)
{
int a = 0, b = 1;
int[] fibArray = new int[12];
fibArray[0] = 0;
fibArray[1] = 1;
Console.WriteLine("0");
Console.WriteLine("*1");
for (int i = 3; i <= fibArray.Length; i++)
{
fibArray[i] = a + b;
a = b;
b = fibArray[i];
for(int y = 1; y <= fibArray[i]; y++)
{
Console.Write("*");
}
Console.Write("" + fibArray[i]);
Console.WriteLine();
}
使用第二部分代码,我无法让它注册和输出序列。大多数情况下,我不确定如何正确设置我的数组以确保斐波那契数列也能够反转。我知道这个序列通常是 f(n)=f(n-1)+f(n-2),我无法理解如何在这种情况下正确使用数组。
for (int p = fibArray[11]; p >= fibArray.Length; p--)
{
for (int k = 1; k <= p; k++)
{
Console.Write("*");
}
Console.Write(""+ b);
Console.WriteLine();
}
}
}
}
抱歉,我只是想将代码作为一个整体来解释,但要给出我所要问的内容的总和。 这将是如何使用数组,我在当前代码中做错了什么,以及我可以使用哪些方面来控制使用数组本身的循环。
要给出所需输出的整体示例,如下所示:
0
*1
*1
**2
***3
***3
**2
*1
*1
0
【问题讨论】:
-
您的第二个循环应该从
11开始,而不是fibArray[11]并下降到0,并且您的打印应该是fibArray[p]而不是b