每日一题 No.49 递归与非递归转换

来源:互联网 发布:免费网络课程 编辑:程序博客网 时间:2024/06/15 21:31

本题要求:

给你一个非常简单的递归函数,请你给出他的非递归形式

// 计算n + n - 1 + n - 2 ..... + 0 int getN(int n) {    if (n < 1) {        return n;    } else {        return getN(n - 1) + n;    }}

输入格式:

输出格式:

非递归形式

输入样例:

输出样例:

解题思路 :

这个函数递归是从后往前算,那么我们只需要从前往后算即可(重要,理解这个思想)。

代码 :

// 计算n + n - 1 + n - 2 ..... + 0 int getN(int n) {    if (n < 0) {        return 0;    }    int a[1001] = {0};    for (int i = 1; i <= n; i++) {        a[i] = a[i - 1] + i;    }    return a[n];}
原创粉丝点击