设计递归函数long power(int m,int,b)计算a^b(B>=0)的值。怎么改进?
答案:5 悬赏:0 手机版
解决时间 2021-12-01 07:33
- 提问者网友:蔚蓝的太阳
- 2021-11-30 07:00
设计递归函数long power(int m,int,b)计算a^b(B>=0)的值。怎么改进?
最佳答案
- 五星知识达人网友:猎心人
- 2021-11-30 08:05
if中的相等形判断混淆了,写成赋值了
...
f (n==0) //n=0改成n==0
z=1;
else if(n==1) //n=1改成n==1
...
...
f (n==0) //n=0改成n==0
z=1;
else if(n==1) //n=1改成n==1
...
全部回答
- 1楼网友:旧脸谱
- 2021-11-30 10:27
不知
- 2楼网友:从此江山别
- 2021-11-30 08:45
不应该仅仅关注代码,而要从系统的功能出发,根据你的代码,可以发现一个问题,
就是power最终返回的要么是1,要么是m, 进而分析发现最后返回的条件就是
n=0 z=1
n>=1 z=m
z<=0 知道n溢出后等同与n=1,
从业务可以分析代码不需要递归操作
if(0 == n)
{
return 1;
}
else
{
return m;
}
就是power最终返回的要么是1,要么是m, 进而分析发现最后返回的条件就是
n=0 z=1
n>=1 z=m
z<=0 知道n溢出后等同与n=1,
从业务可以分析代码不需要递归操作
if(0 == n)
{
return 1;
}
else
{
return m;
}
- 3楼网友:第四晚心情
- 2021-11-30 08:25
long power(int m,int n)
{
long z;
if (n==0) // = 该陈 ==
z=1;
else if(n==1) // = 该陈 ==
z=m;
else
{
z=m*power(m,n-1);
}
return(z);
}
{
long z;
if (n==0) // = 该陈 ==
z=1;
else if(n==1) // = 该陈 ==
z=m;
else
{
z=m*power(m,n-1);
}
return(z);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯