使用递归函数生成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

更新于:2021年9月1日

3K+ 浏览量

开启您的职业生涯

通过完成课程获得认证

开始学习
广告