问题描述:
定义一个递归函数,接受一个整数参数,并返回该参数的阶乘。0!被定义为1;程序使用循环让用户输入不同的值对该递归函数进行测试,直到用户输入负值结束。
解决思路:
1.建立一个递归函数体,函数体中是公式x*=n;
2.在主函数中建立一个循环体,不断询问用户输入值进行测试函数,直到用户输入负数,程序停止。
代码:
#include <iostream>
using namespace std;
int x;
int a(int n)
{
n = n - 1;
x *= n;
if (n>1)
a(n);
return x;
}
int main()
{
int n;
while (1)
{
cout << "你想计算几的阶乘"<<endl;
cin >> n;
x = n;
if (n > 0)
{
a(n);
cout << x<<endl;
}
if (n==0)
{
cout << "1"<<endl;
}
if (n < 0)
{
break;
}
}
cout << "程序结束" << endl;
return 0;
}