我想打印出循环C ++完成的最后一个结果

时间:2016-09-09 02:13:23

标签: c++

#include <iostream>
#include <conio.h>
using namespace std;

int main()
{   
  int i;
  int n=0;
  int F[10];
  F[0]=0;
  F[1]=1;
  cin>>n;

  for(i=2; i<n+1; ++i)
  {
    F[i]=(F[i-1])+F[i-2];
    cout <<F[i]<<endl;
  }

  getch();
  return 0;
}

现在这是一种斐波那契数字生成器,但它输出了斐波那契数列中的所有先前数字。我想要它打印最后一个。例如,如果输入为8,我希望它输出“21”而不是1 2 3 5 8 13 21。

2 个答案:

答案 0 :(得分:0)

#include <iostream>
#include <conio.h>

int main()
{
    int F[10];
    F[0] = 0;
    F[1] = 1;

    int n = 0;
    cin >> n;

    for (int i = 2; i <= n; ++i)
    {
        F[i] = F[i-1] + F[i-2];

    }

    std::cout << F[n] << std::endl;
    getch();
}

由于您已经知道最后一个元素(n)的索引,因此您可以在循环后打印它。我还做了一些没有改变程序功能的清理工作。

请注意,该程序最初仍假定n小于10.

答案 1 :(得分:0)

只存储最后两个值:

#include <iostream>

using namespace std;

int main()
{
   int F[2] = { 1, 1 };
   int n = 0;
   cin>>n;

   for(int i=2; i<n; ++i)
   {
       swap( F[0], F[1] );
       F[1] += F[0];
   }
   std::cout << F[1] << std::endl;

   return 0;
}