0
点赞
收藏
分享

微信扫一扫

python-自动化篇-办公-Excel-Openpyxl库

時小白 2024-02-17 阅读 8

目录

1. 题目描述

2. 一般思路

2.1 有问题的思路

#include <stdio.h>

float Power(double base, int exponent)
{
	double result = 1.0;
	for (int i = 0; i < exponent; i++)
	{
		result *= base;
	}
	return result;
}

int main()
{
	double base = 0;
	int exponent = 0;
	scanf("%lf %d", &base, &exponent);
	printf("%lf", Power(base, exponent));
	return 0;
}

在这里插入图片描述

2.2 全面但不高效的思路

#define wucha 0.00000001
#include <stdio.h>
#include <math.h>

float Power(double base, int exponent)
{
	if (abs(base) < wucha)
	{
		return 0.0;
	}//底数为0,(底数指数都为0则结果默认为0)

	if (exponent == 0)
	{
		return 1.0;
	}//指数为0
	double result = 1.0;

	if (exponent > 0)
	{
		for (int i = 0; i < exponent; i++)
		{
			result *= base;
		}
		return result;
	}//指数为正
	else if (exponent < 0)
	{
		for (int i = 0; i > exponent; i--)
		{
			result *= base;
		}
		return 1 / result;
	}//指数为负
}

int main()
{
	double base = 0;
	int exponent = 0;

	while (scanf("%lf %d", &base, &exponent) != EOF)
	{
		printf("%lf\n", Power(base, exponent));
	}
	return 0;
}

在这里插入图片描述

2.3 面试小提示

3. 全面又高效的思路

在这里插入图片描述

#include <stdio.h>

float Power2(double base, unsigned int exponent)
{
	if (exponent == 0)
	{
		return 1;
	}
	if (exponent == 1)
	{
		return base;
	}

	double result = Power2(base, exponent >> 1);
	result *= result;

	if (exponent & 1 == 1)
	{
		result *= result;
	}
	return result;
}

int main()
{
	double base = 0;
	unsigned int exponent = 0;

	while (scanf("%lf %d", &base, &exponent) != EOF)
	{
		printf("%lf\n", Power2(base, exponent));
	}
	return 0;
}

在这里插入图片描述

最后,
恭喜你又遥遥领先了别人!
在这里插入图片描述

举报

相关推荐

自动化办公excel

0 条评论