问题描述
- 阅读程序 带有三个参数的递归函数怎么列表?
- 我准备参加NOIP,试题里面有阅读程序的题,以前遇到递归的函数就列表,后来见到三个参数的就瞬间无语了O__O""…怎么办呀?
解决方案
什么叫列表?三个参数有什么奇怪的,比如如下程序
#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
解决方案二:
用来枚举所有组合的,就是一个三个参数的递归
时间: 2024-08-01 15:44:42