使用递归函数生成x的n次幂的C程序
问题
计算xn的值,其中x和n都是用户在运行时提供的输入。
解决方案
使用C语言中的递归函数生成x的n次幂值的解决方案如下:
查找xn的逻辑如下:
//Calling function: Xpow=power(x,n); //Called function: if (n==1) return(x); else if ( n%2 == 0) return (pow(power(x,n/2),2)); /*if n is even*/ else return (x*power(x, n-1));
算法
请参考以下算法,使用递归函数生成x的n次幂的值。
步骤1 - 读取长整型变量
步骤2 - 声明函数原型
步骤3 - 调用函数
Xpown=power(x,n) goto step 5
步骤4 - 打印xpown
步骤5 - 被调用函数
步骤5.1 - if (n==1)
步骤5.1.1 - return(x)
步骤5.2 - Else if (n%2 == 0)
步骤5.2.1 - Return (pow(power(x,n/2),2)); /*如果n是偶数*/
步骤5.3 - Else
步骤5.3.1 - Return (x*power (x, n-1)); /*如果n是奇数*/
程序
以下是使用递归函数**生成x的n次幂值的C程序**:
#include <stdio.h> #include <math.h> void main(){ long int x, n, xpown; long int power(int x, int n); printf("Enter the values of X and N:
"); scanf("%ld %ld", &x, &n); xpown = power (x, n); printf("X to the power N = %ld
",xpown); } /*Recursive function to computer the X to power N*/ long int power(int x, int n){ if (n==1) return(x); else if ( n%2 == 0) return (pow(power(x,n/2),2)); /*if n is even*/ else return (x*power(x, n-1)); /* if n is odd*/ }
输出
执行上述程序时,会产生以下结果:
Enter the values of X and N: 5 4 X to the power N = 625
广告