C语言 递归求 a^n 的次方。 |
您所在的位置:网站首页 › 使用递归算法求解x的n次方和n次方 › C语言 递归求 a^n 的次方。 |
int pow(int a,int n) ::这个递归函数的目的是 求 a^n 次方,并返回结果。 2 * a^(n-1) 就等于 a^n 。不要往里绕,很容易绕进去,每次递归 n 的值都会减1,最终n会变成0,而 a^0 = 1,这个就是递归的终止条件。 int pow(int a,int n) { if (n == 0) { return 1; } return 2 * pow(a, n - 1);假设 a=2,n=3,求a^n。 第一次进入程序,a=2,n=3判断语句无效,进入第一次递归,a=2,n=2判断语句无效,第二次进入递归,a=2,n=1判断语句无效,第三次进入递归,a=2,n=0判断语句有效返回1,回到第二次递归1*2=2,返回2。回到第一次递归2*2=4,返回4,退出所有递归 继续执行程序返回4*2=8, 最终的返回结果为8。 return 2 * pow(a, n - 1) == return 2 * 4 = 8 1 * 2 * 2 * 2 = 8 下面是 递归求平方 的程序 #include int pow(int a,int n) { if (n == 0) { return 1; } return 2 * pow(a, n - 1); } int main() { int a = 2; int n = 3; printf("请输入底数->:"); scanf_s("%d", &a); printf("请输入次方数->:"); scanf_s("%d", &n); int get = pow(a,n); printf("%d", get); return 0; } |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |