2021.11.2 记录递归知识点

#include<cstring>
using namespace std;
int N;
int a[40];
void recursion(int n){
    if(n > N) return;
    for(int i = n;i>=1;i--){
        a[i]=a[i-1]+a[i];
    }
    for(int i =1;i <=n;i++){
        cout <<a[i] <<" ";
    }
    cout << endl;
    recursion(n+1);
}
int main(){
    cin >>N;
    memset(a,0,sizeof(a));
    a[1]=1;
    recursion(1);
    return 0;
}

从本题中理解了递归,我一直想着递归,却忘记了递归可以嵌套循环,在本题中

        a[i]=a[i-1]+a[i];
    }

我错写成了往后遍历:

        a[i]=a[i-1]+a[i];
    }

必须往前遍历,才有正确结果。