计算x^N的时间复杂度为(logN)的算法

7 篇文章 0 订阅
5 篇文章 0 订阅
/*计算x^N的时间复杂度为O(logN)的算法*/
#include <stdio.h>			//C语言标准头文件

double Pow(double x, int n);	//C语言函数声明

int main(int argc, char const *argv[])	//C语言主函数
{
	int n = 0;
	double x = 0;

	/*用户交互输入提示*/
	printf("Please enter a real number as x:");
	scanf("%lf", &x);
	printf("Please enter a positive integer as n:");
	scanf("%d", &n);
	/*格式化输出结果*/
	printf("%lf^%d = %lf\n", x, n, Pow(x, n));

	while(1) getchar();		//起到暂停命令行界面的显示结果作用,如果在集成开发环境下面运行此代码,可以删除此语句。
	return 0;
}

double Pow(double x, int n)		//函数的定义
{
	double ret = 0;		//为了保障单一出口,设置ret保存将要返回的结果

	if (x != 0)		//如果x不等于0,才进入此函数的主要计算步骤
	{
		ret = 1;
		while(n > 0)	//当指数n等于0时,结束循环
		{
			if (n % 2 == 0)		//当指数n为偶数时
			{
				x *= x;
				n /= 2;
			}
			else		//当指数n为奇数时
			{
				ret *= x;
				n -= 1;
			}
		}
	}
	return ret;	//返回计算结果
}

###*运行程序,分别输入x和n,即得x^n的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

James_Xue_2023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值