正序输出
#include <iostream>
using namespace std;
void fac ( int n )
{
if ( n > 1 )
fac ( n - 1 ); //如果不return过了边界等于0之后从堆栈顶部依次释放,并执行后面的语句
cout << n << " ";
}
int main()
{
int n;
cin >> n;
fac(n);
return 0;
}
倒序输出
#include <iostream>
using namespace std;
void fac ( int n )
{
cout << n << " ";
if ( n > 1 )
return fac ( n - 1 );
cout << "test " << n << " "; //最后一次调用会执行这一句,其他100到2不会执行,因为return回被调用的地方,这个特性非常重要
}
int main()
{
int n;
cin >> n;
fac(n);
return 0;
}