成都软件开发:怎么用C语言编写一个求解幂函数的程序

[复制链接]
516|5
手机看帖
扫描二维码
随时随地手机跟帖
yonko|  楼主 | 2019-9-20 20:03 | 显示全部楼层 |阅读模式
其实在绝大多数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

使用特权

评论回复

相关帖子

ditto51| | 2019-12-3 14:41 | 显示全部楼层
以为是王者,结果是青铜

使用特权

评论回复
nccdap| | 2020-3-11 15:59 | 显示全部楼层
这是自己的学习笔记么

使用特权

评论回复
edan_lee| | 2020-4-4 19:22 | 显示全部楼层
楼主应该没有对代码做过验证

使用特权

评论回复
steelen| | 2020-7-20 13:45 | 显示全部楼层
这个代码是错的哦

使用特权

评论回复
steelen| | 2020-7-20 13:48 | 显示全部楼层
N=2 返回x^2
n=3 返回 x^4
n=4  返回 x^8
.......

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

114

主题

227

帖子

0

粉丝