蓝桥杯训练营4---提高

  • 简单到爆1!!!
#include<bits/stdc++.h>
using namespace std;

int main(){
	int N;
	cin>>N;
	int a[N],b[N];
	for(int i=0;i<N;i++){
		cin>>a[i]>>b[i];
	}
	for(int i=0;i<N;i++){
		cout<<a[i]+b[i]<<endl;
	}
	return 0;
}
  • 简单到爆2!!!
#include<bits/stdc++.h>
using namespace std;

int main(){
	int f1,f2,f3;
	f1=f2=1;
	int n;
	cin>>n;
	if(n<3){ 
		cout<<f1;
		return 0;
	}
	else{ 
	for(int i=3;i<=n;i++){
		f3=(f1+f2)%1000000007;
		f2=f3;
		f1=f2;
	} 
	cout<<f3;
	}
	return 0;
}
  • num[i][j]—num[n-1-j][i]???
#include<bits/stdc++.h>
using namespace std;
int num[100][100];
int main(){
	int n,m;
	cin>>n>>m;
	for(int i=0;i<n;i++){
		for(int j=0;j<m;j++)
		   cin>>num[i][j];
	}
	for(int i=0;i<m;i++){
		for(int j=0;j<n;j++){
			if(j!=n-1){
				cout<<num[n-1-j][i]<<" ";
			}else{
				cout<<num[n-1-j][i]<<endl;
			}
		}
	}
	return 0;
}
  • 有点意思?!
#include<bits/stdc++.h>
using namespace std;
int A[55][55];
int main(){
	int n,m,ans;
	cin>>n>>m;
	ans=-1005;
	for(int i=0;i<n;i++){
		for(int j=0;j<m;j++){
			cin>>A[i][j];
		}
	}
	for(int i=0;i<n;i++){//上 
		for(int j=i;j<n;j++){//下 
			for(int k=0;k<m;k++){//左 
				for(int l=k;l<m;l++){//右 
					int tmp=0;
					for(int p=i;p<=j;p++){
						for(int q=k;q<=l;q++){
							tmp+=A[p][q];
						}
					}
					if(tmp>ans){
						ans=tmp;
					}
				}
			}
		}
	}
	cout<<ans<<endl;
	return 0;
}
  • 简单到爆3!!!
#include<bits/stdc++.h>
using namespace std;

int main(){
	int n,m;
	cin>>n;
	int s[100],ans[105];
	for(int i=0;i<n;i++){
		cin>>s[i];
	} 
	sort(s,s+n);
	m=0;
	for(int i=0;i<n;i++){
		if(i!=0&&s[i]!=s[i-1]){
		    ans[m++]=s[i-1];
		}
	}
	ans[m++]=s[n-1];
	cout<<m<<endl;
	for(int i=0;i<m;i++){
		if(i!=m-1){
			cout<<ans[i]<<" ";
		}else{
			cout<<ans[i]<<endl;
		}
	}
	return 0;
}

-又是 进制转换:

#include<bits/stdc++.h>
using namespace std;
char ans[105];
int main(){
	int N,R,m,now;
	cin>>N>>R;
	if(N<0){
		cout<<"-";
		N=-N;
	}
	m=0;
	while(N){
		now=N%R;
		if(now<=9){
			ans[m++]='0'+now;
		}else{
			ans[m++]='A'+now-10;
		}
		N/=R;
	}
	if(m==0){
		cout<<0;
	}
	for(int i=m-1;i>=0;i--){
		cout<<ans[i];
	}
	cout<<endl;
	return 0;
}
  • 功能函数的作用是使思维清晰化!!!
#include<bits/stdc++.h>
using namespace std;
int num[1005];
int digit[1005];
bool judge(int x){
	int cnt=0;
	while(x){
		digit[cnt++]=x%10;
		x/=10;
	}
	for(int i=0;i<cnt/2;i++){
		if(digit[i]!=digit[cnt-i-1])
		return false;
	}
	return true;
}
int rev(int x){
	int ret=0;
	while(x){
		ret=ret*10+x%10;
		x/=10;
	}
	return ret;
}
int main(){
	int n,m;
	cin>>n;
	m=0;
	num[m++]=n;
    while(!judge(n)){
    	n+=rev(n);
    	num[m++]=n;
    }
    cout<<m-1<<endl;
    for(int i=0;i<m;i++){
    	if(i!=m-1){
    		cout<<num[i]<<"--->";
    	}else{
    		cout<<num[i]<<endl;
    	}
    }
	return 0;
}
  • ??迷宫,不是,坐标系与数组定义不一样哦!
#include<bits/stdc++.h>
using namespace std;

int dx[4]={0,-1,0,1};
int dy[4]={1,0,-1,0};
char op[15];
int main(){
	int n,d,x,nowx,nowy;
	cin>>n;
	d=3;
	nowx=0;
	nowy=0;
	for(int i=0;i<n;i++){
		cin>>op>>x;
		if(op[0]=='b'){
			d=(d+2)%4;//1-后 
		}else if(op[0]=='l'){
			d=(d+1)%4;//0-左 
		}else if(op[0]=='r'){
			d=(d+3)%4;//2-右 
		}
		nowx+=dx[d]*x;//3-前 
		nowy+=dy[d]*x;
	}
	cout<<nowx<<" "<<nowy<<endl;
	return 0;
}
发布了131 篇原创文章 · 获赞 58 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_43595030/article/details/104262260