从品牌网站建设到网络营销策划,从策略到执行的一站式服务
函数具备递归性质,才能写出递归程序,很明显f(x)=x不成,比如阶乘就可以
创新互联建站专注于沧州企业网站建设,成都响应式网站建设公司,成都做商城网站。沧州网站建设公司,为沧州等地区提供建站服务。全流程按需开发,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务
f(x)=1*2*3*...*x
可以具备递归定义:
/
1(x=0,1)
f(x)=|
x
*
f(x-1)
(x1)
x为正整数
则程序如下:
int
fact(int
x){
if(x==0||x==1)return
1;
else
return
x*fact(x-1);
}
#include stdio.h
int power(int x, int p)
{
if (p == 0)
return 1;
else
return (x * power(x, p-1);
}
int main(void)
{
int x, p;
scanf("%d%d", x, p);
printf("%d\n", power(x, p));
}
if(a==1)a=1;
这句改成
if(a==1) return 1;
就OK了哦。。。你试试吧。。。
比如输入4
结果是24
希望能帮到你。。。
#includestdio.h
int power(int x,int n)
{
if(n==0)
return 1;
elseif(n%2==1)
return x*power(x,n-1);
else{
int y=power(x,n/2);
return y*y;
}
}
int main()
{
int a,b,c;
printf("enter x and n:");
setvbuf(stdout,NULL,_IONBF,0);
scanf("%d%d",a,b);
c=power(a,b);
printf("结果为%d",c);
return 0;
}
扩展资料
#includestdio.h
double power(double x,int n);
main()
{
double x;
int n;
printf("Input x,n:");
scanf("%lf,%d",x,n);
printf("%.2lf",power(x,n));
}
double power(double x,int n)
{
double a=1.0;
int i;
for(i=1;i=n;i++)
a*=x;
return a;
}
参考资料:百度百科 - 递归调用
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图