阶乘函数 斐波那契数列
#include <iostream> #include <cstring> #include <algorithm> using namespace std; // 阶乘函数 int fact(int n) { if(!n) return 1; return n * fact(n-1); } // 斐波那契数列 int fib(int n) { if(n <= 1) return 1; return fib(n-1)+fib(n-2); } int main() { cout << "fact(5) "<<fact(5) <<endl; cout << "fib(5) "<<fib(5) <<endl; return 0; }
排列问题
#include <iostream> #include <cstring> #include <algorithm> #include <math.h> using namespace std; // 数组长度 排列总数 int n, ans; /** *@param s 数组首地址 *@param k 已经匹配完成[0,k-1] *@param n 数组总长度 */ void Perm(int *s,int k, int n) { if(k >= n) { for(int i=0; i<=n; i++) { cout<< s[i] <<" "; } cout<< endl; ans++; return ; } for(int i=k; i<=n; i++) { swap(s[k], s[i]); Perm(s, k+1, n); swap(s[k], s[i]); } } int main() { // 输入数组长度 并输入相应数量的数 cin >> n; int *s = new int[n]; for(int i=0;i<n;i++) { cin >> s[i]; } // 对输入的数 进行排序 sort(s, s+n); cout <<endl; Perm(s, 0, n-1); cout << "排列总数 " << ans<<endl; return 0; }