|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
double Power_by(int x, int y)
{
double sum = 0;
if (y == 0)
{
sum = 1;
}
else
return Power_by(x, y - 1) * x;
}
int main()
{
int x = 0, y = 0;
printf("input=");
scanf_s("%d%d", &x, &y);
double ret = Power_by(x, y);
printf("%f\n", ret);
return 0;
}
题目是计算x的y次方 请问大神们 return Power_by(x, y - 1) * x; 就递归这一步没明白 为什么是这样的??
本帖最后由 jhq999 于 2022-2-17 18:22 编辑
首先你自己得认真一点
- double Power_by(int x, int y)/////////举例3 3,当y=0时,返回1到上一层就是Power_by(x, y - 1)是1再乘3返回上一层Power_by(x, y - 1)是3,再乘以3,到第一层Power_by(x, y - 1)=9,然后再乘以3返回到主函数
- {
- if (y == 0)
- {
- return 1;
-
- }
- else
- return Power_by(x, y - 1) * x;
- }
- int main()
- {
- int x = 0, y = 0;
- printf("input=");
- scanf_s("%d%d", &x, &y);
- double ret = Power_by(x, y);
- printf("%lf\n", ret);
- return 0;
- }
复制代码
|
|