单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 164|回复: 0
收起左侧

怎么用C语言编写一个求解幂函数的程序

[复制链接]
yonko 发表于 2019-9-20 20:07 | 显示全部楼层 |阅读模式
其实在绝大多数C语言编译器内部是有幂函数这个函数的,具体的指令是pow(a,b),这个指令实现的功能就是求解a^b的值,也就是求解ab次方。
例如,假如我们要求解6的7次方,并把最终的结果存入变量result,那么我们可以这样子写代码:
include <math.h>       //添加数学运算的头文件
result= pow(6,7);        //求解6的7次方,结果存入result
但是,如果我们自己要编写这样的一个幂函数该怎么样编写呢?
首先我们需要进行一些数学运算方法的思考,假如要求解x^n, n>0且n为整数。那么应当是这样的:
当n=0时,x^n=x^0=1;
当n=1时,x^n=x^1=x;
当n>1时,x^n=x*x…,就是把n个x相乘。这样就可以得到本案中的幂函数的计算流程如图 1。
图1.PNG
在这个程序里面,我们可以使用if条件指令进行判断在n=0,n=1或者n>1的情况下分别进行计算。
特别指出的是,当n>1时,用到for循环函数,n有多大就利用for循环进行(n-1)次的乘法运算。(承接软件开发业务-Q-Q:2531-26-3726)那么编写的程序如下:
unsigned int pow1(unsigned int x,unsigned int n)      //求解幂函数,n为正整数
{
unsigned char i=0;
if(n==0)  x=1;            //n=0时,x=1
else
       {
       if(n==1)  x=x;     //n=1时,x=x
       else                      //n>1时,用for循环多次相乘
              {
              for(i=2;i<=n;i++)
                     {x=x*x;
                     }
              }
       }
return x;                            //将计算结果返回
}
在程序中其他部分调用函数pow1就能进行幂函数运算。例如求解9的11次方,结果存入变量result,那么可以像这样调用指令pow1进行计算:
result=pow1(9,11);
这样自己编写的一个幂函数就完成了。更多精彩内容,尽在公号:yonkotech

回复

使用道具 举报

无效楼层,该帖已经被删除
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|单片机论坛 |51黑电子论坛技术交流 QQ 管理员QQ:125739409;技术交流QQ群636986012

Powered by 单片机教程网

快速回复 返回顶部 返回列表