文档章节

蓝桥杯学习记录-基础练习

DataPig
 DataPig
发布于 2017/08/16 09:37
字数 2722
阅读 10
收藏 0

注:每天都更新哦~,题目下面的代码都是经过测试正确的,欢迎有更好算法的大神指正,我会把您的代码也附上,相互学习。

蓝桥杯-基础练习:所有题
十六进制转八进制 进制转换 字符 循环
十六进制转十进制 进制转换 字符处理 判断
十进制转十六进制 循环 整除 求余 判断
特殊回文数 回文数 循环 条件语句
回文数 循环 判断 回文数
特殊的数字 循环 判断 数位
杨辉三角形 基础练习 二维数组
字母图形 循环 字符串
01字串 循环
闰年判断 条件判断

1.基础练习 数列排序 

问题描述
  给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200
输入格式
  第一行为一个整数n。
  第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。
输出格式
  输出一行,按从小到大的顺序输出排序后的数列。
样例输入
5
8 3 6 4 9
样例输出
3 4 6 8 9

#include <iostream>
using namespace std;
int main(){
	long int n,i,j,max;
	cin >>n;
	long int list[n-1];	
	for(i=0;i<n;i++){
		cin >>list[i];
	}
	
	for(j=0;j<n-1;j++){
		for(i=0;i<n-j-1;i++){
			if(list[i]>list[i+1]){
				max=list[i];
				list[i]=list[i+1];
				list[i+1]=max;
			}
		}
	}
	for(i=0;i<n;i++){
		cout<<list[i]<<' ';
	}
	return 0;	
}

2. 基础练习 闰年判断  
问题描述

给定一个年份,判断这一年是不是闰年。

当以下情况之一满足时,这一年是闰年:

1. 年份是4的倍数而不是100的倍数;

2. 年份是400的倍数。

其他的年份都不是闰年。

输入格式
输入包含一个整数y,表示当前的年份。
输出格式
输出一行,如果给定的年份是闰年,则输出yes,否则输出no。

说明:当试题指定你输出一个字符串作为结果(比如本题的yes或者no,你需要严格按照试题中给定的大小写,写错大小写将不得分。

样例输入
2013
样例输出
no
样例输入
2016
样例输出
yes
数据规模与约定
1990 <= y <= 2050。
#include <iostream>
using namespace std;
int main(){
	int n;
	cin >> n;
	if(n%4==0 and n%100!=0){
		cout << "yes";
	}
	else if(n%400==0){
		cout << "yes";
	}
	else{
		cout << "no"; 
	}
	return 0;
}

3.基础练习 01字串
问题描述

对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:

00000

00001

00010

00011

00100

请按从小到大的顺序输出这32种01串。

输入格式
本试题没有输入。
输出格式
输出32行,按从小到大的顺序每行一个长度为5的01串。
样例输出
00000
00001
00010
00011
<以下部分省略>

#include<iostream>
using namespace std;
int main(){
	int i,j,k,l,m;
	for(i=0;i<2;i++)
		for(j=0;j<2;j++)
			for(k=0;k<2;k++)
				for(l=0;l<2;l++)
					for(m=0;m<2;m++)
							cout<<i<<j<<k<<l<<m<<endl; 
	return 0;
}
4.基础练习 字母图形  
问题描述

利用字母可以组成一些美丽的图形,下面给出了一个例子:

ABCDEFG

BABCDEF

CBABCDE

#include<iostream>
using namespace std;
int main(){
	int n,i,f,stat=0;
	cin>>n;
	int list[n-1];
	for(i=0;i<n;i++){
		cin >>list[i];
	}
	cin >>f;
	for(i=0;i<n;i++){
		if(list[i]==f){
			cout <<i+1;
			stat=1;
			break;
		}
	}
	if(stat==0){
		cout<<-1;
	}
	return 0;
}

DCBABCD

EDCBABC

这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。

输入格式
输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。
输出格式
输出n行,每个m个字符,为你的图形。
样例输入
5 7
样例输出
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
数据规模与约定
1 <= n, m <= 26。

#include<iostream>
using namespace std;
int main(){
	char list[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	int n,m,i,j;
	cin >>n>>m;
	for(i=0;i<n;i++){
		for(j=i;j>0;j--){
			cout<<list[j];
			if(m==(i-j+1)){
				break;
			} 
		}
		for(j=0;j<m-i;j++){
			cout<< list[j];
		}
		
		cout<<endl;
	}
	return 0;
}
4.基础练习 数列特征
问题描述

给出n个数,找出这n个数的最大值,最小值,和。

输入格式

第一行为整数n,表示数的个数。

第二行有n个数,为给定的n个数,每个数的绝对值都小于10000。

输出格式
输出三行,每行一个整数。第一行表示这些数中的最大值,第二行表示这些数中的最小值,第三行表示这些数的和。
样例输入
5
1 3 -2 4 5
样例输出
5
-2
11
数据规模与约定
1 <= n <= 10000。

#include <iostream>
using namespace std;
int main(){
	int n,i,max=0,min=0,sum=0;
	cin >>n;
	int list[n-1];
	cin>>list[0];
	max=min=sum=list[0];
	for(i=1;i<n;i++){
		cin>>list[i];
		if(list[i]>max){
			max=list[i];
		}
		else if(list[i]<min){
			min=list[i];
		}
		sum=sum+list[i];
	}
	cout<<max<<endl;
	cout<<min<<endl;
	cout<<sum<<endl;
	return 0;
}

5.基础练习 查找整数  
问题描述

给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。

输入格式

第一行包含一个整数n。

第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。

第三行包含一个整数a,为待查找的数。

输出格式
如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。
样例输入
6
1 9 4 8 3 9
9
样例输出
2
数据规模与约定
1 <= n <= 1000。

#include<iostream>
using namespace std;
int main(){
	int n,i,f,stat=0;
	cin>>n;
	int list[n-1];
	for(i=0;i<n;i++){
		cin >>list[i];
	}
	cin >>f;
	for(i=0;i<n;i++){
		if(list[i]==f){
			cout <<i+1;
			stat=1;
			break;
		}
	}
	if(stat==0){
		cout<<-1;
	}
	return 0;
}
7.基础练习 杨辉三角形  
问题描述

杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。

  

它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。

  

下面给出了杨辉三角形的前4行:

  

   1

  

  1 1

  

 1 2 1

  

1 3 3 1

  

给出n,输出它的前n行。

输入格式

输入包含一个数n。

输出格式
输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。请不要在前面输出多余的空格。
样例输入
4
样例输出
1
1 1
1 2 1
1 3 3 1
数据规模与约定
1 <= n <= 34。
#include<iostream>
using namespace std;
int main(){
	int n,i,j;
	cin>>n; 
	int list[34][n];
	
	for(i=0;i<=n-1;i++){
		for(j=0;j<=i;j++){
			if(i==0||j==0||j==i){
				list[i][j]=1;
			}
			else{
				list[i][j]=list[i-1][j-1]+list[i-1][j];
			}
			cout<<list[i][j]<<' ';
		}
		cout<<endl;
	}
	return 0;
}
8.基础练习 回文数  
问题描述
  1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。
输出格式
  按从小到大的顺序输出满足条件的四位十进制数。

#include <iostream>
using namespace std;
int main(){
	int i,j,k;
	int list[5];
	for(i=1;i<=9;i++){
		for(j=0;j<=9;j++){
			list[0]=list[3]=i;
			list[1]=list[2]=j;
			for(k=0;k<=3;k++){
				cout<<list[k];
			}
			cout<<endl;
			
		}
	}
}
9.基础练习 特殊的数字  
问题描述
  153是一个非常特殊的数,它等于它的每位数字的立方和,即153=1*1*1+5*5*5+3*3*3。编程求所有满足这种条件的三位十进制数。
输出格式
  按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。
#include<iostream>
#include<cmath>
using namespace std;
int main(){
	int i;
	for(i=100;i<=999;i++){
		if(i==(pow(i%10,3)+pow(i%100/10,3)+pow(i/100,3))){
			cout<<i<<endl;
		}
	} 
	return 0;
}


9.基础练习 特殊回文数  
问题描述
  123321是一个非常特殊的数,它从左边读和从右边读是一样的。
  输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式
  输入一行,包含一个正整数n。
输出格式
  按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入
52
样例输出
899998
989989
998899
数据规模和约定
  1<=n<=54。
#include <iostream>
using namespace std;
int main(){
	int sum,msum;
	int i,j,k,h;
	cin >>sum;
	int list[6];
	for(i=1;i<=9;i++){
		for(j=0;j<=9;j++){
			for(k=0;k<=9;k++){
				list[0]=list[4]=i;
				list[1]=list[3]=j;
				list[2]=k;list[5]=0;
				msum=0;
				for(h=0;h<6;h++){
					msum=msum+list[h];
				}
				if(sum==msum){
					for(h=0;h<5;h++){
					cout<<list[h];
					}
					cout<<endl;
				}
				
			}		
		}
	}
	for(i=1;i<=9;i++){
		for(j=0;j<=9;j++){
			for(k=0;k<=9;k++){
				list[0]=list[5]=i;
				list[1]=list[4]=j;
				list[2]=list[3]=k;
				msum=0;
				for(h=0;h<6;h++){
					msum=msum+list[h];
				}
				if(sum==msum){
					for(h=0;h<=5;h++){
					cout<<list[h];
					}
					cout<<endl;
				}
				
			}		
		}
	}
	return 0;
}
10.基础练习 十进制转十六进制  
问题描述
  十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。
  给出一个非负整数,将它表示成十六进制的形式。
输入格式
  输入包含一个非负整数a,表示要转换的数。0<=a<=2147483647
输出格式
  输出这个整数的16进制表示
样例输入
30
样例输出
1E
#include <iostream>
using namespace std;
int main(){
	int n;
	int i,j=0,yushu,shang;
	cin >>n;
	char list[]="0123456789ABCDEF";
	char result[10];
	yushu=shang=n;
	while(shang>=16){		
		yushu=shang%16;
		shang=shang/16;
		result[j]=list[yushu];
		j=j+1;
	}
	if(shang<16){
		result[j]=list[shang];
	}
	for(;j>=0;j--){
		cout <<result[j];
	}
	return 0;
}
11.基础练习 十六进制转十进制  
问题描述
  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535

#include <iostream>
#include <cmath>
using namespace std;
int main(){
	string n;
	int i,j=0,lens,zhi;
	unsigned long int sum=0;
	cin >>n;
	char list[]="0123456789ABCDEF";
	lens=n.size();
	//cout <<lens<<' '<<n<<endl;
	for(i=lens-1;i>=0;i--){
		for(j=0;j<16;j++){
			if(list[j]==n[i]){
				zhi=j;
				//cout<<j<<' '<<i<<endl;
			}
		}
		sum=sum+zhi*pow(16,lens-i-1);
		//cout<<sum<<' '<<lens-i-1<<endl;
 	}	
	cout<<sum;
	return 0;
}


© 著作权归作者所有

DataPig
粉丝 1
博文 12
码字总数 8686
作品 0
济南
私信 提问
我算不算一个程序员

小弟目前大二,主要学习C#(但是我不太喜欢,所以就学的一般),根据学校安排的课程的话最多学完基础,我个人喜欢PHP,从开始学习到目前大约3个月,能够进行基础模块的制作(BBS,在线聊天室...

我是一只小小鸟001
2017/03/21
286
3
【广州】被客户叼晕了的【Java程序员】,来此【求职】哈~

先来些简历信息,让各位HR或主管经理过过目。。。 有木有单位愿意收留俺这枚应届生,屌丝程序猿。。。 专业能力:掌握Java语言编程,熟练JSP、Servlet、JDBC下开发; 熟悉Struts、Hibernate...

__啊
2014/07/23
2.7K
23
简明刷题指南

Cover 1. 刷题网站 HDUOJ HDOJ Welcome To PKU JudgeOnline POJ PAT image.png Codeforces CodeForces AtCoder Atcoder Virtual Judge Vjudge 2. 刷题步骤 以HDUOJ为例 首先注册网站账号 点击......

SpiffyEight77
2018/01/06
0
0
蓝桥杯,你怎么看???

蓝桥杯又要报名了,各位大boss们怎么看待蓝桥杯~~~

嘚瑟的小孩
2016/11/29
571
7
蓝桥杯 基础练习 字母图形

问题描述 利用字母可以组成一些美丽的图形,下面给出了一个例子: ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。 输入格...

梦想游戏人
2015/03/14
454
0

没有更多内容

加载失败,请刷新页面

加载更多

Giraph源码分析(八)—— 统计每个SuperStep中参与计算的顶点数目

作者|白松 目的:科研中,需要分析在每次迭代过程中参与计算的顶点数目,来进一步优化系统。比如,在SSSP的compute()方法最后一行,都会把当前顶点voteToHalt,即变为InActive状态。所以每次...

数澜科技
今天
4
0
Xss过滤器(Java)

问题 最近旧的系统,遇到Xss安全问题。这个系统采用用的是spring mvc的maven工程。 解决 maven依赖配置 <properties><easapi.version>2.2.0.0</easapi.version></properties><dependenci......

亚林瓜子
今天
10
0
Navicat 快捷键

操作 结果 ctrl+q 打开查询窗口 ctrl+/ 注释sql语句 ctrl+shift +/ 解除注释 ctrl+r 运行查询窗口的sql语句 ctrl+shift+r 只运行选中的sql语句 F6 打开一个mysql命令行窗口 ctrl+l 删除一行 ...

低至一折起
今天
9
0
Set 和 Map

Set 1:基本概念 类数组对象, 内部元素唯一 let set = new Set([1, 2, 3, 2, 1]); console.log(set); // Set(3){ 1, 2, 3 } [...set]; // [1, 2, 3] 接收数组或迭代器对象 ...

凌兮洛
今天
4
0
PyTorch入门笔记一

张量 引入pytorch,生成一个随机的5x3张量 >>> from __future__ import print_function>>> import torch>>> x = torch.rand(5, 3)>>> print(x)tensor([[0.5555, 0.7301, 0.5655],......

仪山湖
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部