用C++语言编写程序,递归函数
发布网友
发布时间:2022-05-13 09:48
我来回答
共5个回答
热心网友
时间:2023-10-05 09:15
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;
}
热心网友
时间:2023-10-05 09:15
#include <stdio.h>
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));
}
}
手敲,未测。
热心网友
时间:2023-10-05 09:16
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);
}
热心网友
时间:2023-10-05 09:17
#include <iostream>
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:"<<result<<endl;
return 0;
}
热心网友
时间:2023-10-05 09:17
#include<iostream>
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;
}