任意给定一个正整数N(N<=100)计数2的N 次方的值

2025-06-21 08:26:32
推荐回答(5个)
回答1:

实在看不下去了,转贴http://hi.baidu.com/east2050/item/0547873d2c18a70ccfb9fe33
#include
#include
#include

#include
#define LEN 100
void
BigMultiply(int *a,int *b)
{
int i,j;
int nCarry;
int
nTmp;
int c[LEN];
memset(c,0,sizeof(int)*LEN);

for(i=0;i nCarry=0;

for(j=0;j nTmp=c[i+j]+a[j]*b[i]+nCarry;

c[i+j]=nTmp%10;
nCarry=nTmp/10;
}
}

memcpy(a,c,LEN*sizeof(int));
}
void main()
{
int
aResult[LEN],aPow[LEN],N;
scanf("%d",&N);
while(N!=-1){

memset(aResult,0,sizeof(int)*LEN);

memset(aPow,0,sizeof(int)*LEN);
aResult[0]=1;

aPow[0]=2;
while(N>0){
if(N&1)

BigMultiply(aResult,aPow);
N>>=1;

BigMultiply(aPow,aPow);
}
bool bStartOutput=false;

for(int i=LEN-1;i>=0;i--){
if(bStartOutput)

printf("%d",aResult[i]);
else if(aResult[i]){

bStartOutput=true;
printf("%d",aResult[i]);

}
}
printf("\n");

scanf("%d",&N);
}
system("pause");
}

回答2:

long result( long n )
{
return 1<}
int main( )
{
printf("%ld",result(10));
return 0;
}

回答3:

for(i=1;i<=N;i++)s*=2;

回答4:

int main()
{
int i, N; int S=1;
scanf("%d",&N);
FOR(i=1;i<=N;i++)
S*=2
printf("2的N次方是:%d",S);
}

回答5:

这个就是C语言!!!

#include

int main()
{
int N;
printf("输入N : ")
scanf("%d\n",&N);
printf("2的N次方是%d",1<}