我一直试图让输出打印出来,每增加6个数字,就会添加换行符。但是,它没有按预期工作。如果用户在主函数中输入9,则应打印出来:
21 13 8 5 3 2
1 1 0
但是正在打印
21 13
8 5 3 2 1 1
0
几乎正确但不完全正确。我该如何解决这个问题?我不确定是因为我的索引还是我错误地使用了模数运算符。谢谢!
我的代码:
void Fibonacci(int length)
{
int arr[20] = {0, 1, 1, 2, 3, 5, 8, 13, 21,
34, 55, 89, 144, 233, 377,
610, 987, 1597, 2584, 4181};
for (int i = length - 1; i >= 0; --i)
{
if (i % 6 == 0 )
{
cout<<endl;
}
cout<<setw(5)<<arr[i];
}
cout<<endl;
答案 0 :(得分:0)
尝试
for (int i = length - 1; i >= 0; --i)
{
cout<<setw(5)<<arr[i];
if (((length - 1 - i) % 6 == 5)
{
cout<<endl;
}
}
或者,正如 @tadman 建议的那样,
for (int i = 0; i < length; ++i)
{
cout<<setw(5)<<arr[length - 1 - i];
if (i % 6 == 5)
{
cout<<endl;
}
}