计算一个数的n次幂

方法一、使用自定义函数进行递归计算

1 //递归计算n次幂
2 int m_to_n(int m, int n) 
3 {
4     if (n == 1)
5         return m;
6     else
7         return m * m_to_n(m, n - 1);
8 }

方法二、使用C的pow()函数

注意:调用此函数,需要头文件:#include <math.h>

pow() 函数用来求 x 的 y 次幂(次方),其原型为:
    double pow(double x, double y);

pow()用来计算以x 为底的 y 次方值,然后将结果返回。设返回值为 ret,则 ret = xy

可能导致错误的情况:

  • 如果底数 x 为负数并且指数 y 不是整数,将会导致 domain error 错误。
  • 如果底数 x 和指数 y 都是 0,可能会导致 domain error 错误,也可能没有;这跟库的实现有关。
  • 如果底数 x 是 0,指数 y 是负数,可能会导致 domain error 或 pole error 错误,也可能没有;这跟库的实现有关。
  • 如果返回值 ret 太大或者太小,将会导致 range error 错误。


错误代码:

  • 如果发生 domain error 错误,那么全局变量 errno 将被设置为  EDOM;
  • 如果发生 pole error 或 range error 错误,那么全局变量 errno 将被设置为 ERANGE。


注意,使用 GCC 编译时请加入-lm。

 

posted @ 2020-06-08 00:43  禅主  阅读(951)  评论(0编辑  收藏  举报