C 程序使用递归函数生成 x n 次方的值

cserver side programmingprogramming更新于 2024/11/9 15:55:00

问题

计算 xn 的值,其中 x 和 n 都是用户在运行时给出的输入

解决方案

在 C 编程语言中使用递归函数生成 x n 次方的值的解决方案如下 −

查找 xn 的逻辑如下 −

//调用函数:
Xpow=power(x,n);
//调用函数:
if (n==1)
   return(x);
else if ( n%2 == 0)
   return (pow(power(x,n/2),2)); /*如果 n 是偶数*/
else
   return (x*power(x, n-1));

算法

参考下面给出的算法,使用递归函数生成 x n 次方的值。

步骤 1 − 读取 long int 变量

步骤 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 为奇数*/

程序

以下是 C 程序,用于使用递归函数生成 x n 次方的值

#include <stdio.h>
#include <math.h>
void main(){
   long int x, n, xpown;
   long int power(int x, int n);
   printf("输入 X 和 N 的值:
");    scanf("%ld %ld", &x, &n);    xpown = power (x, n);    printf("X 的 N 次方 = %ld
",xpown); } /*递归函数计算 X 的 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)); /*如果 n 为偶数*/    else      返回 (x*power(x, n-1)); /* 如果n是奇数*/ }

输出

当执行上述程序时,它会产生以下结果 −

输入 X 和 N 的值:
5 4
X 的 N 次方 = 625

相关文章