编写一个函数,用循环/递归的方法实现返回一个float 类型数的某个整数次幂

编写一个函数,用循环的方法实现返回一个float 类型数的某个整数次幂

更多资料请点击:我的目录

循环方法:

#include <stdio.h>

float my_power(float a,int b)
{
	int sum1 = 1;
	float sum2 = 1.0;
	if( b > 0 )
	{
		for( int i = 0; i < b; i++ )
		{
			sum1 *= a;
		}
		return sum1;
	}

	else if( b == 0)
		return 1;
	else
	{
		for( int i = 0; i < -b ; i++)
		{
			sum2 *= (float)1.00 / a;
		}
		return sum2;
	}
}

int main()
{
	int N;
	float a,sum;
	scanf("%f %d", &a, &N);
	sum = my_power(a,N);
	printf("%f\n",sum);
	return 0;
}

求幂函数:

float my_power(float a,int b)
{
	int sum1 = 1;
	float sum2 = 1.0;
	if( b > 0 )
	{
		for( int i = 0; i < b; i++ )
		{
			sum1 *= a;
		}
		return sum1;
	}

	else if( b == 0)
		return 1;
	else
	{
		for( int i = 0; i < -b ; i++)
		{
			sum2 *= (float)1.00 / a;
		}
		return sum2;
	}
}

递归函数方法:

#include <stdio.h>

float my_power(float n, int N);

int main()
{	
	float x,sum;
	int N;
	printf("请输入一个底数x及其幂指数N,求其N次方值:");
	scanf("%f %d", &x, &N);
	sum = my_power(x,N);
	printf("结果 : sum == %f\n",sum);
	return 0;
}

float my_power(float n, int N)
{
	if( N > 0)
	{
			return my_power(n, N -1)*n;
	}
	
	else if( N < 0)
	{
			return my_power(n, N + 1)*(1 / n);
	}
	else if(N == 0)
		return 1;
}

更多资料请点击:我的目录

发布了75 篇原创文章 · 获赞 35 · 访问量 5928

猜你喜欢

转载自blog.csdn.net/weixin_43793181/article/details/103915278