用递归解决3的n次幂

来源:百度知道 编辑:UC知道 时间:2024/05/23 12:30:43
在C语言里如何用递归函数来计算3的n次幂呢?(n由用户输入)谢谢!

计算n次幂的时间复杂度只要logn就好了。楼上的方法太慢了,这样的话根本体现不出递归的优势

unsigned long pow(const int x,const int n)
{
if (1 == n)
return n;
unsigned long tmp = pow (x,n/2);
return n%2 ? tmp*tmp*x : tmp*tmp;
}

这个函数会计算x的n次幂!

不要计算太大,以防溢出

#include<conio.h>
#include<stdio.h>

unsigned long getResult(int n)
{
if(n==0) return 1;
else return 3*getResult(n-1);
}

void main()
{
int n;
unsigned long num;

printf("请输入n值: \n");
scanf("%d",&n);

num=getResult(n);

printf("3的%d次方为: %lu\n",n,num);

getch();
}

#include <stdio.h>
int mult(int a)
{
int c;
if(a==0) return 1;
c=mult(a-1)*3;
return c;
}

void main()
{
int a,b;
printf("输入3幂数:");
scanf("%d",&a);
b=mult(a);