题目描述

以下数列0 1 1 2 3 5 8 13 21 …被称为斐波纳契数列。

这个数列从第3项开始,每一项都等于前两项之和。

输入一个整数N,请你输出这个序列的前N项。

输入格式

一个整数N。

输出格式

在一行中输出斐波那契数列的前N项,数字之间用空格隔开。

数据范围

0<N<46

输入样例:

5

输出样例:

0 1 1 2 3

C ++ 代码

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>

using namespace std;

int n;

int main(){
    scanf("%d", &n);

    int a = 0, b = 1, c;
    for(int i = 1; i <= n; i ++){
        printf("%d ", a);
        c = a + b;//暂存原来的a + b
        a = b;
        b = c;
    }

    return 0;
}