1.阶乘
#include <bits/stdc++.h> using namespace std; int factorial(int n) { if(n==0||n==1) { return 1; } return n*factorial(n-1); } int main() { int n; cin>>n; cout<<factorial(n); }
2.斐波那契
#include <bits/stdc++.h> using namespace std; int fibonacci(int n) { if(n==0||n==1) { return 1; } return fibonacci(n-1)+fibonacci(n-2); } int main() { int n; cin>>n; cout<<fibonacci(n); }
3.整数划分
tip:输入整数n、m,现将n划分为若干个整数,求使n = a0+a1+a2+……(a0<=m)划分的方法数量。
#include <bits/stdc++.h> using namespace std; int q(int n,int m) { if(n==1||m==1) { return 1; } if(n<m) { return q(n,n); } if(n==m) { return 1+q(n,n-1); } return q(n,m-1)+q(n-m,m); } int main() { int n,m; cin>>n>>m; cout<<q(n,m); }
4.hanoi
#include <bits/stdc++.h> using namespace std; int hanoi(int n,char a,char b,char c) { if(n==1) { cout<<n<<" : "<<"a"<<"-->"<<"b"<<endl; } else { hanoi(n-1,a,c,b); // move(a,c); cout<<n<<" : "<<"a"<<"-->"<<"c"<<endl; hanoi(n-1,c,b,a); } } int main() { int n,a,b,c; cin>>n; hanoi(n,a,b,c); }