C语言实现乘方运算(m的n次方)

C语言实现乘方运算(m的n次方)其实C库中有实现乘方运算的函数,在math.h中的pow函数;这里不使用库函数,自己实现:可以使用以下几种方法:普通实现位实现递归实现////例子如下:#include<stdio.h>#include<stdlib.h>/**乘方运算,即m的n次方(m^n)*///普通实现intpower2(intm,intn){ inti=1; intresult=1; if(n==0) { returnresul

其实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次方)

今天的文章C语言实现乘方运算(m的n次方)分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/12029.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注