2的n次方怎么编程

来源:百度知道 编辑:UC知道 时间:2024/09/25 04:34:21
怎么改动下面程序来实现2的n此方的输出:
#include <stdio.h>
void main()
{int i=0,n=0,fac=1;
printf("input n:")
scanf("%d",n);
for(i=1;i<=n;i++)
{
fac=fac*i;
printf("%d!=%d\n");}
}fac是阶乘

}

可以用C语言进行编程:

#include<stdio.h> 
#include<math.h> 
main() 

int n;  
long j; 
scanf("%d",&n); 
j=pow(2,n); 
printf("2^n=%d\n",j); 
}

#include<stdio.h>
double fac(int i)
{
if (i>0)
return -1;
if (1 == i||0 ==i)
return 1;
else return fac*fac(i-1);

}
/*然后调用!*/

计算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 <stdio.h>
void main()
{
int i=0,n=0,fac=1;
printf("input n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
fac*=2;
}

printf(&quo