其实C库中有实现乘方运算的函数,在math.h中的pow函数;这里不使用库函数,自己实现:
可以使用以下几种方法:
普通实现
位实现
递归实现
例子如下:
#include <stdio.h>
#include <stdlib.h>
/* * 乘方运算,即m的n次方 (m^n) */
//普通实现
int power2(int m, int n)
{
int i = 1;
int result = 1;
if (n == 0)
{
return result;
}
for (i = 1; i <= n; i++)
{
result *= m;
}
return result;
}
//位实现
int power3(int m, int n)
{
int result = 1;
while (n != 0)
{
if (n & 1 == 1)
{
result *= m;
}
m *= m;
n >>= 1;
}
return result;
}
//递归实现
int power1(int m, int n)
{
/* //m^0 = 1 if (n == 0) { return 1; } //m^1 = m if (n == 1) { return m; } */
if(n < 2)
{
return n==0 ? 1 : m;
}
return m * power1(m, n - 1);
}
int main(void)
{
int m, n;
int result = 0;
printf("请输入底数m:");
scanf("%d",&m);
printf("请输入次数n:");
scanf("%d",&n);
result = power1(m,n);
printf("递归实现:%d的%d次方为:%d\n",m,n,result);
result = power2(m, n);
printf("普通实现:%d的%d次方为:%d\n", m, n, result);
result = power3(m, n);
printf("位实现:%d的%d次方为:%d\n", m, n, result);
system("pause");
return 0;
}
//运行结果如下:
今天的文章C语言实现乘方运算(m的n次方)分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/12029.html