C语言的math.c库文件提供了幂函数pow()。 但今天我们将简单地实现一个幂函数。 我们分几个步骤来实现
1. 分析算法
求一个正整数的次方,需要乘以整数n,比如2的三次方,即2*2*2,将整数2乘以3次。 多个数重复执行相同的操作,自然而然会想到使用循环。 如何循环,看下面代码示例
for(i = 1; i<=p;i )
pow *= n;
上面的例子中,n的值代表想要的数,pow是n的p次方,p是次方。 带上数字进行验证,假设n=2,p=3,表示求2的三次方
第一次循环,pow = pow*n,即pow = 1*2 = 2
第二次循环,pow = pow*n,即pow =2 * 2 = 4
第三次循环,pow = pow*n,即pow = 4 * 2 = 8
二、函数实现
使用函数 实现上,主要考虑两个问题:
1. 函数的参数是什么
函数的参数可以从函数来考虑,主要是求某个数的次方,而实际上有两个参数:一个是数值,和 另一个是多少权力。 本例中使用double类型表示想要的值,可以是整数,也可以是浮点数; int 用于表示整数次幂。
2. 函数的返回值是多少
在这个例子中,使用函数后,肯定会返回一个结果,对于整数是integer,对于浮点数是double,所以return value 使用 return 返回 double 类型。
所有函数声明如下:
double power(double n, int p);
3. 代码实现
#include
双倍功率(双 n,int p);
诠释主要(无效){
双 x, xpow;
国际经验;
printf("请输入数值和整数次方:");
while(scanf("%lf %d",&x,&exp) == 2){
xpow = 幂(x,exp);
printf("%.3g的%d次方是%.5gn",x,exp,xpow);
printf("输入新的值对,或使用q退出.n");
}
}
双幂(双 n,int p){
双战俘 = 1;
诠释我;
对于(我= 1;我<=p;我){
战俘 * = n;
}
归还战俘;
}
运行结果: