用C++语言编写程序,递归函数

2025-05-22 12:44:16
推荐回答(5个)
回答(1):

1、在数学上,关于递归函数的定义如下:对于某一函数f(x),其定义域是集合A,那么若对于A集合中的某一个值X0,其函数值f(x0)由f(f(x0))决定,那么就称f(x)为递归函数。 在编程语言中,把直接或间接地调用自身的函数称为递归函数。函数的构建通常需要一个函数或者一个过程来完成。

2、递归函数 是建立在嵌套的基础上的,只不过嵌套调用了自己本身,而且经常不是显式调用。一个含直接或间接调用本函数语句的函数被称之为递归函数,它必须满足以下两个条件:
1) 在每一次调用自己时,必须是(在某种意义上)更接近于解;
2) 必须有一个终止处理或计算的准则。
例如一个非法的递归(嵌套)调用:
void ff(){
ff();
}
int main()
{
ff();
system("pause");
return 0;
}

回答(2):

#include 
int doit(int x,int n)
{
    if(n==1)
        return x;
    else
        return x*doit(x,n-1);
}

void main()
{
    int x,n;
    printf("Please input x and n:");
    scanf("%d %d",&x,&n);
    if(x <= 0 || n <= 0)
    {
        printf("\nInput error.");
    }
    else
    {
        printf("\nResult is:%d"),doit(x,n));
    }
}
手敲,未测。

回答(3):

float digui(float x,int n)//递归函数
{
    if(n==1)
        return x;
    else
        return x*digui(x,n-1);
}
void main()
{
    float x,f;
    int n;

    printf("请输入x的值:\n");
    scanf("%f",&x);

    printf("请输入n的值:\n");
    scanf("%d",&n);

    f = digui(x,n);

    printf("x的n次幂: %0.3f\n",f);
}

回答(4):

#include 
using namespace std;

int fabs(int x,int n)
{
if(n == 1)
return x;
else
return x * fabs(x,n-1);

int main()
{
int x,n,result;
cout<<"input x,n:";
cin>>x;
cin>>n; //可以对n进行非负数判断

result = fabs(x,n);

cout<<"result:"< return 0;
}

回答(5):

#include

using namespace std;

int pow(int x,int n)
{
if(n == 1)return x;
return x * pow(x,n-1);
}

int main()
{
int x,n;
cin >> x >> n;
cout << "pow:" << pow(x,n) << endl;
return 0;
}