重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
递归函数myPower的定义有逻辑错误,改成:
站在用户的角度思考问题,与客户深入沟通,找到南澳网站设计与南澳网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计制作、成都网站设计、企业官网、英文网站、手机端网站、网站推广、域名与空间、虚拟主机、企业邮箱。业务覆盖南澳地区。
double myPower(int a,int b)
{
if(0==b) return 1;
return a*myPower(a,b-1);
}
如果改成这样,会更高效:
double myPower(int a,int b)
{
if(0==b) return 1;
if(1==b) return a;
return myPower(a,b%2)*myPower(a*a,b/2);
}
例子1
#include stdio.h
double myPower(int a,int b)
{
if(0==b) return 1;
return a*myPower(a,b-1);
}
int main()
{
int a=2,b;
for(b=0;b11;b++)
printf("%lf\n",myPower(a,b));
return 0;
}
例子2
#include stdio.h
double myPower(int a,int b)
{
if(0==b) return 1;
if(1==b) return a;
return myPower(a,b%2)*myPower(a*a,b/2);
}
int main()
{
int a=3,b;
for(b=0;b11;b++)
printf("%lf\n",myPower(a,b));
return 0;
}
没有返回值的函数通常用来做一些数据的修改或实现些内部功能。而有返回值的函数通常作用为数据存储。当然实际上没有那么明显的界限,只是你要知道没返回值的函数一样有意义
无返回值就是函数只执行数据处理,不返回值。函数定义时一般用void关键字表示无返回值。
如调用string类库中的int
i
=
strcmp("abc",
"abc")函数判断两个参数是不是相等,两个都"abc"
则i
=
0,这是有返回值的
返回值是函数的计算结果,比如用函数计算1+1返回值就是2;
另外返回值并不一定的我们想要的结果,比如1+1如果返回3了,那就是函数代码有错误。