2的n次方怎么编程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2的n次方怎么编程相关的知识,希望对你有一定的参考价值。
怎么改动下面程序来实现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);
参考技术A 计算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次幂! 参考技术B 上面的算法很强啊,今天学习了,不过有个地方估计你写错了
unsigned long pow(const int x,const int n)
if (1 == n)
return n; //return x;
unsigned long tmp = pow (x,n/2);
return n%2 ? tmp*tmp*x : tmp*tmp;
参考技术C #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);
/*然后调用!*/本回答被提问者和网友采纳 参考技术D #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("%d!=%d\n",n,fac);
编个程序:题目是“2的n次方”。就是当用户输入n时程序自动算出“2的n次方”
最好说明一下理由 追加50至200
参考技术A main()int i,n;
unsigned long sum;
while(n!=-1)
printf("\nplease enter n:");
sum=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
sum*=2;
printf("%ld",sum);
while循环,是连续输入计算,输入-1程序结束
for循环,就是计算过程,初始sum是1,n是几,就乘几次2
最后输出sum值 参考技术B 给出delphi的做法
uses math;
procedure TForm1.Edit1Change(Sender: TObject);
begin
edit2.Text:=FloatToStr(Power(2,StrToInt(edit1.Text)));
end;
当edit1的内容改变时,调用power方法,计算出2的n次方
然后通过edit2显示出来
power方法是系统预定义的,原型如下
function Power(const Base, Exponent: Extended): Extended; 参考技术C C语言
#include<stdio.h>
void main()
int m,n;
long sum=1;
printf("please input n:");
scanf("%d",&n);
for(m=1;m<=n;m++)
sum*=2;
printf("%ld",sum);
参考技术D 得用循环,,,,最初A=1 每次循环执行一次, A=A*2 ,就可以实现本回答被提问者采纳 第5个回答 2006-07-27 vb的
dim n as integer,a as long,i as integer
n=text1.text
a=1
for i =1 to n
a=2*a
next i
text2.text=a
以上是关于2的n次方怎么编程的主要内容,如果未能解决你的问题,请参考以下文章