【蓝桥杯】试题集-基础练习-完整版(附百分代码及部分解释)

“蓝桥杯”练习系统 (lanqiao.cn) 

目录

1.A+B问题

2.数列排序

3.十六进制转八进制

4.十六进制转十进制

5.十进制转十六进制

6.特殊回文数

7.回文数

8.特殊的数字

9.杨辉三角形

10.查找整数

11.数列特征

12.字母图形

13.01字串

14.闰年判断

15.Fibonacci数列

16.圆的面积

17.序列求和

18.阶乘计算

19.高精度加法

20.Huffuman树

21.2n皇后问题

22.报时助手

23.回形取数

24.龟兔赛跑预测

25.芯片测试

26.FJ的字符串

27.Sine之舞

28.数的读法

29.完美的代价

30.矩形面积交

31.矩阵乘法

32.分解质因数

33.字符串对比

34.时间转换 


1.A+B问题

#include<bits/stdc++.h>
using namespace std;
int main(){
	int A,B;
	cin>>A>>B;
	cout<<A+B<<endl;
	return 0;
}

2.数列排序

给定一个长度为n的数列,将这个数列按从小到大的顺序排列。

输出一行,按从小到大的顺序输出排序后的数列。

  • 冒泡排序法:基本原理是两两比较待排序数据的大小 ,当两个数据的次序不满足顺序条件时即进行交换,反之,则保持不变,这样每次最小(或最大)的结点就像气泡一样浮到序列的最前位置。
#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin>>n;
	int a[n];
	for(int i=0; i<n;i++){
		cin>>a[i];	
	}
	//COMPARE
	int temp=0;
	for(int i=0; i<n-1; i++){//-1防止数组角标越界
		for(int j=0; j<n-i-1; j++){
			if(a[j+1]<a[j]) {
				//temp=a[j+1];
				//a[j+1]=a[j];
				//a[j]=temp;	
				swap(a[j+1],a[j]);
			}
		}		
	}
	
	for(int i=0; i<n;i++){
		cout<<a[i]<<" " ;	
	}
	return 0;
}

3.十六进制转八进制

给定n个十六进制正整数,输出它们对应的八进制数。

  • 十六进制:0~9 A~F    0000~1111
  • 八进制:0~7  000~111

C 库函数 char *strcpy(char *dest, const char *src) 把 src 所指向的字符串复制到 dest。 

strcpy(Arry_eight,Arrx.c_str());
#include<bits/stdc++.h> 
using namespace std;
//二进制-八进制
void transform_8(string Arrx) {
	int n;
	n=Arrx.length();
	//检查是否需要补0 
	if(n%3==1) Arrx = "00"+Arrx;
	else if(n%3==2) Arrx = "0"+Arrx;
	//更新长度
	n=Arrx.length();
	char Arry_eight[n];
	//C 库函数 char *strcpy(char *dest, const char *src) 把 src 所指向的字符串复制到 dest。 
	strcpy(Arry_eight,Arrx.c_str());
	int i,j;
	//八进制位数 
	i=n/3; 
	//字符数组对应的八进制位数,数组从0开始计数 
	j=i-1; 	
	//数组前三均为0,则八进制此处为0,不在记录 
	if(Arry_eight[0]=='0'&&Arry_eight[1]=='0'&&Arry_eight[2]=='0') {
		j--;
		i--;
	}
	//八进制的个数为i 
	char Arrx_eight[i];
	//3位一组 
	int x, y, z;
	x=n-1;
	y=n-2;
	z=n-3;
	for(int k= i; k>0; k--){
		 if(Arry_eight[z]=='0'&&Arry_eight[y]=='0'&&Arry_eight[x]=='0') Arrx_eight[j]='0'; 
		 else if(Arry_eight[z]=='0'&&Arry_eight[y]=='0'&&Arry_eight[x]=='1') Arrx_eight[j]='1';  
		 else if(Arry_eight[z]=='0'&&Arry_eight[y]=='1'&&Arry_eight[x]=='0') Arrx_eight[j]='2';  
		 else if(Arry_eight[z]=='0'&&Arry_eight[y]=='1'&&Arry_eight[x]=='1') Arrx_eight[j]='3'; 
		 else if(Arry_eight[z]=='1'&&Arry_eight[y]=='0'&&Arry_eight[x]=='0') Arrx_eight[j]='4';  
		 else if(Arry_eight[z]=='1'&&Arry_eight[y]=='0'&&Arry_eight[x]=='1') Arrx_eight[j]='5';
		 else if(Arry_eight[z]=='1'&&Arry_eight[y]=='1'&&Arry_eight[x]=='0') Arrx_eight[j]='6';  
		 else if(Arry_eight[z]=='1'&&Arry_eight[y]=='1'&&Arry_eight[x]=='1') Arrx_eight[j]='7'; 
		 j--;
		 x-=3;
		 y-=3;
		 z-=3;
	} 
	for(int p=0; p<i; p++){
		cout<<Arrx_eight[p];
	}
	cout<<endl;	 
}


//十六进制-二进制
void transform_2(char num[], int n){
	string Arry[n];
	string Arrx;
	for(int i=0; i<n; i++){
		//如果为数字 
		if(num[i]=='0'||num[i]=='1'||num[i]=='2'||num[i]=='3'||num[i]=='4'
		 ||num[i]=='5'||num[i]=='6'||num[i]=='7'||num[i]=='8'||num[i]=='9'){
		 	if(num[i]=='0' && i!=0) Arry[i]="0000";
		 	if(num[i]=='1') Arry[i]="0001";
		 	if(num[i]=='2') Arry[i]="0010";
		 	if(num[i]=='3') Arry[i]="0011";
		 	if(num[i]=='4') Arry[i]="0100";
		 	if(num[i]=='5') Arry[i]="0101";
		 	if(num[i]=='6') Arry[i]="0110";
		 	if(num[i]=='7') Arry[i]="0111";
		 	if(num[i]=='8') Arry[i]="1000";
		 	if(num[i]=='9') Arry[i]="1001";
		 } 
		else if(num[i]=='A' || num[i]=='a') Arry[i]="1010";
		else if(num[i]=='B' || num[i]=='b') Arry[i]="1011";
		else if(num[i]=='C' || num[i]=='c') Arry[i]="1100";
		else if(num[i]=='D' || num[i]=='d') Arry[i]="1101";
		else if(num[i]=='E' || num[i]=='e') Arry[i]="1110";
		else if(num[i]=='F' || num[i]=='f') Arry[i]="1111";	 
	}
	//字符串合并
	for(int i=0; i<n; i++) {
		Arrx += Arry[i];
	}
	//转换成八进制 
	transform_8(Arrx);
}

int main(){
	int n; 
	//n行
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MengYa_DreamZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值