周某某


私信TA

用户名:yaoyuanzhi1225

访问量:240

签 名:

等  级
排  名 613
经  验 4021
参赛次数 14
文章发表 1
年  龄 0
在职情况 教师
学  校
专  业

  自我简介:

TA的其他文章

解题思路:思考之前所学的高精度乘法,将每一位都乘2,在进行进位的处理

主要代码:

void cif(int a[]){//进行乘2 
for(int i=0;i<lena;i++){//先将每一位都乘2 
    a[i]*=2;
}
for(int i=0;i<lena;i++){//将每一位上需要进位的进位 
    a[i+1]+=a[i]/10;
    a[i]=a[i]%10;
}
if(a[lena]>0)lena++;//判断是否长度有增长 
}



注意事项:需要判断是否为0次方!不然会扣分

参考代码:

#include<bits/stdc++.h>
using namespace std;
int a[1001]={2},lena=1;	//初始化 
void cif(int a[]){		//进行乘2 
	for(int i=0;i<lena;i++){	//先将每一位都乘2 
		a[i]*=2;
	}
	for(int i=0;i<lena;i++){	//将每一位上需要进位的进位 
		a[i+1]+=a[i]/10;
		a[i]=a[i]%10;
	}
	if(a[lena]>0)	lena++;		//判断是否长度有增长 
}
void print(int a[]){	//倒序输出 
	for(int i=lena-1;i>=0;i--)
		cout<<a[i];
}
int main(){
	int n;
	cin>>n;
	if(n==0){	//判断是否为0次方; 
		cout<<1;
		return 0;
	}
	for(int i=1;i<n;i++){
		cif(a);
	}
	print(a);
}


 

0.0分

2 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区

讲得不错(赞)
2023-12-13 22:43:42
  • «
  • 1
  • »