其实在绝大多数 C 语言编译器内部是有幂函数这个函数的, 具体的指令是 pow(a,b), 这个指令实现的功能就是求解 a^b 的值, 也就是求解 a 的 b 次方.
例如, 假如我们要求解 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.
在这个程序里面, 我们可以使用 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 循环多次相乘. 更多精彩内容, 尽在微 - 信公 - 众号: yonkotech
- {
- for(i=2;i<=n;i++)
- {
- x=x*x;
- }
- }
- }
- return x; // 将计算结果返回
- }
在程序中其他部分调用函数 pow1 就能进行幂函数运算. 例如求解 9 的 11 次方, 结果存入变量 result, 那么可以像这样调用指令 pow1 进行计算:
result=pow1(9,11);
这样自己编写的一个幂函数就完成了.
来源: http://www.bubuko.com/infodetail-3206322.html