1.组合问题
#include <iostream>
using namespace std;
unsigned func(unsigned n);
int comm(int n,int k)
{
if(k>n)
return 0;
else if(n==k||k==0)
return 1;
else
return comm(n-1,k)+comm(n-1,k-1);
}
int main()
{
int m,n;
cout<<"请输入2个整数:";
cin >>m>>n;
cout<<"计算结果是:"<<comm(m,n)<<endl;
return 0;
}
2.汉诺塔问题
#include <iostream>
using namespace std;
void move(char src,char dest) ;
void hanoi(int n,char src,char medium,char dest);
void move(char src,char dest)
{
cout<<src<<"-->>"<<dest<<endl;
}
void hanoi(int n,char src,char medium,char dest){
if (n==1)
move(src,dest);
else
{
hanoi(n-1,src,dest,medium);
move(src,dest);
hanoi(n-1,medium,src,dest);
}
}
int main()
{
int m;
cout<<"Enter the number of diskes: ";
cin>>m;
cout<<"The steps to moving"<<m<<"diskes:"<<endl;
hanoi(m,'A','B','C');
return 0;
return 0;
}