阶乘
//阶乘递归
#include<iostream>
using namespace std;
int Factorial(int n);
int main()
{
int n,result;
cout<<"input n: ";
cin>>n;
cout<<endl;
result = Factorial(n);
cout<<n<<"的阶乘是"<<result<<endl;
}
int Factorial(int n)
{
int factor;
if(n == 0)
{
factor = 1;
}
else
{
factor = n*Factorial(n-1);
}
return factor;
}
结果
汉诺塔
//使用递归实现n个盘子的汉诺塔
#include<iostream>
using namespace std;
void Hanoi(int n,char a, char b, char c);
void Move(char from, int n, char to);
int main()
{
int n;
cout<<"input n:";
cin>>n;
Hanoi(n,'a','b','c');
cout<<endl;
return 0;
}
void Hanoi(int n, char a, char b, char c)
{
if(n>0)
{
Hanoi(n-1,a,c,b);
Move(a,n,c);
Hanoi(n-1,b,a,c);
}
}
void Move(char from, int n, char to)
{
cout<<"编号为"<<n<<"的盘子从"<<from<<"塔移动到"<<to<<"塔"<<endl;
}
结果
网友评论