求解C语言相关问题解答

#include<stdio.h>
int sub (int n,int a)

if(n<2)
return a;
return sub(n-1, a)*a;

int main()

printf("%d",sub(3,5));

输出后多少

5的3次方
sub(int n,int a)函数的作用是计算a的n次方
使用了递归方法。
但当n小于2,包括为负数时,结果都是a,这个和标准的a的n次方结果不一样

答案125
有这闲钱和时间,你随便开个在线编译网站,把代码粘进去执行一下不香吗

125,结果就是这么多

img

https://www.bejson.com/runcode/c740/
粘贴进去运行

#include <stdio.h>

int sub(int n,int a){
    if(n<2) return a;
    return sub(n-1,a)*a;
}

int main(){
    printf("%d",sub(3,5));
    return 0;
}

这是个递归调用的函数,你估计是想知道执行的过程,而不仅仅只是答案吧!

sub(3,5) 结果为 5 的三次方 555 为 125

第一次
sub (3,5) 调用 sub(3-1,5)*5
继续调用
sub(2-1,5) * 5 * 5
继续 1 < 2 所以返回 5
然后
5 * 5 * 5 得 5 的三次方 125