Katlynn 2015-08-27 07:20 采纳率: 0%
浏览 1563

阅读程序 带有三个参数的递归函数怎么列表?

我准备参加NOIP,试题里面有阅读程序的题,以前遇到递归的函数就列表,后来见到三个参数的就瞬间无语了O__O"…怎么办呀?

  • 写回答

2条回答 默认 最新

  • threenewbee 2015-08-27 08:06
    关注

    什么叫列表?三个参数有什么奇怪的,比如如下程序

     #include <iostream>
    using namespace std;
    
    void foo(int * s, int n, int x)
    {
        if (x == 0)
        {
            for (int i = n - 2; i >= 0; i--)
                cout << s[i] << " ";
            cout << endl;
        }
        else
        {
            for (int i = 0; i < x; i++)
            {
                int * s1 = new int[n + 1];
                for (int j = 0; j < n; j++) s1[j] = s[j];
                s1[n] = i;
                foo(s1, n + 1, i);
            }        
        }
    }
    
    int main()
    {
        foo(NULL, 0, 5);
        return 0;
    }
    
    

    1
    2
    1 2
    3
    1 3
    2 3
    1 2 3
    4
    1 4
    2 4
    1 2 4
    3 4
    1 3 4
    2 3 4
    1 2 3 4

    评论

报告相同问题?