• 蓝桥题库基础练习1-10


    基础练习题库BASIC1-10

    试题编号 试题名称 关键字
    BASIC-1 闰年判断 条件判断
    BASIC-2 01字串 循环
    BASIC-3 字母图形 循环 字符串
    BASIC-4 数列特征 循环 最大值 最小值 累加
    BASIC-5 查找整数 循环 判断
    BASIC-6 杨辉三角形 基础练习 二维数组
    BASIC-7 特殊的数字 循环 判断 数位
    BASIC-8 回文数 循环 判断 回文数
    BASIC-9 特殊回文数 回文数 循环 条件语句
    BASIC-10 十进制转十六进制 循环 整除 求余 判断

    基础题真的很基础,有些题目一眼看过去就觉得很简单,感觉都没有做的必要。

    但是,但是也许越简单越容易埋坑。


    闰年判断

    问题描述

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

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

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

    2. 年份是400的倍数。

    其他的年份都不是闰年。

    数据规模与约定

    1990 <= y <= 2050。

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

    测试用例

    序号 输入 输出
    1 2013 no
    2 2000 yes
    3 1992 yes
    4 1990 no
    5 2015 no
    6 2016 yes
    7 2020 yes
    8 2040 yes
    9 2050 no
    10 2014 no

    Java源代码

    import java.util.Scanner;
    
    public class Main {
    	
    	public static void main(String[] args){	
    		Scanner sc = new Scanner(System.in);
    		int year =sc.nextInt();
    		if(isLeap(year)){
    			System.out.print("yes");
    		}
    		else{
    			System.out.print("no");
    		}
    	}
    	
    	//判断闰年的方法,闰年返回true
    	public static boolean isLeap(int year)
    	{
    	    return year>0 &&((year%4 == 0 && year%100 != 0) || (year%400 == 0));
    	}
    }
    

    01字串

    问题描述

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

    00000

    00001

    00010

    00011

    00100

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

    数据规模与约定

    输入格式 输出格式
    本试题没有输入。 输出32行,按从小到大的顺序每行一个长度为5的01串。

    Java源代码

    public class Main {
    
    	public static void main(String[] args) {
    
    		for (int i = 0; i < 32; i++)
    			toBinary(i);
    	}
    
    	public static void toBinary(int a) {
    		String tempStr = "";
    		String str2 = Integer.toBinaryString(a);
    		// 判断一下:转化的二进制是否够五位
    		if (str2.length() < 5) {
    			for (int j = 5 - str2.length(); j > 0; j--) {
    				str2 = "0" + str2;
    			}
    		}
    		tempStr += str2;
    		System.out.println(tempStr);
    	}
    }
    

    字母图形

    问题描述

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

    ABCDEFG

    BABCDEF

    CBABCDE

    DCBABCD

    EDCBABC

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


    数据规模与约定

    1 <= n, m <= 26。

    输入格式 输出格式
    输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。 输出n行,每个m个字符,为你的图形。

    官方测试用例

    序号 输入 输出
    1 5 7 ABCDEFG
    BABCDEF
    CBABCDE
    DCBABCD
    EDCBABC

    Java源代码

    import java.util.Scanner;
    
    public class Main {
    	
    	public static void main(String[] args){	
    		Scanner sc = new Scanner(System.in);
    		int n =sc.nextInt();
    		int m =sc.nextInt();
    		char ch = 'A';
    		boolean flag = true;
    		
    		for(int i = 0; i < n; i++){
    			flag = true;//每行判断是否需要递减
    			ch = (char)('A'+i);
    			for(int j = 0; j < m; j++){
    				System.out.print(ch);
    				if(ch>65&&flag){//判断每行前面的字母若大于A则递减到A再递增
    					ch = (char)(ch-1);
    				}
    				else{
    					ch = (char)(ch+1);
    					flag = false;//递增信号
    				}
    			}
    			System.out.println();
    		}
    	}
    }
    

    数列特征

    问题描述

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


    数据规模与约定

    1 <= n <= 1,000,000。

    输入格式 输出格式
    第一行为整数n,表示数的个数。
    第二行有n个数,为给定的n个数,每个数的绝对值都小于10000。
    输出三行,每行一个整数。第一行表示这些数中的最大值,第二行表示这些数中的最小值,第三行表示这些数的和。

    官方测试用例

    序号 输入 输出
    1 1
    -8151
    -8151
    -8151
    -8151
    2 2
    -6109 -1858
    -1858
    -6109
    -7967
    3 10
    1924 -5407 7532 3286 4782 2386 -112 -2487 3569 -1295
    7532
    -5407
    14178

    还有大量数据显示不美观,有需要可以找博主。


    Java源代码

    import java.util.Scanner;
    
    public class Main {
    	
    	public static void main(String[] args){	
    		Scanner sc = new Scanner(System.in);
    		int n = sc.nextInt();
    		int[] num = new int[n];
    		num[0] = sc.nextInt();
    		int Max = num[0];
    		int Mix = num[0];
    		int sum = num[0];
    		
    		for(int i = 1; i < n; i++){
    			num[i] = sc.nextInt();
    			Max = num[i]>Max?num[i]:Max;
    			Mix = num[i]<Mix?num[i]:Mix;
    			sum += num[i];
    		}
    		System.out.println(Max);
    		System.out.println(Mix);
    		System.out.println(sum);
    	}
    }
    

    查找整数

    问题描述

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


    数据规模与约定

    1 <= n <= 1000。

    输入格式 输出格式
    第一行包含一个整数n。
    第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。
    第三行包含一个整数a,为待查找的数。
    如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。

    官方测试用例

    序号 输入 输出
    1 1
    41
    41
    1
    2 1
    34
    0
    -1
    3 10
    69 24 78 58 62 64 5 45 81 27
    58
    4

    还有大量数据显示不美观,有需要可以找博主。


    Java源代码

    import java.util.Scanner;
    
    public class Main {
    	
    	public static void main(String[] args){	
    		Scanner sc = new Scanner(System.in);
    		int n = sc.nextInt();
    		int[] num = new int[n];	
    		
    		for(int i = 0; i < n; i++){
    			num[i] = sc.nextInt();
    		}
    		
    		int find = sc.nextInt();
    		int result = -1;
    		
    		
    		for(int i = 0; i < n; i++){
    			if(find == num[i]){
    				result = i+1 ;
    				break;
    			}
    				
    		}
    		System.out.println(result);
    	}
    }
    

    杨辉三角形

    问题描述

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

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

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

    1

    1 1

    1 2 1

    1 3 3 1

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

    数据规模与约定

    1 <= n <= 34。

    输入格式 输出格式
    输入包含一个数n。 输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。请不要在前面输出多余的空格。

    官方测试用例

    序号 输入 输出
    1 2 1
    1 1
    2 4 1
    1 1
    1 2 1
    1 3 3 1
    3 5 1
    1 1
    1 2 1
    1 3 3 1
    1 4 6 4 1

    还有大量数据显示不美观,有需要可以找博主。


    Java源代码

    import java.util.Scanner;
    
    public class Main {
    	
    	public static void main(String[] args){	
    		Scanner sc = new Scanner(System.in);
    		int n = sc.nextInt();
    		int[][] Pascal = new int[n][];	
    		
    		for(int i = 0; i < n; i++){
    			Pascal[i] = new int[i+1];
    			for(int j = 0; j < Pascal[i].length ; j++){
    				if(i>=2&&j>0){
    					if(j == Pascal[i].length-1)
    						Pascal[i][j]=1;
    					else
    						Pascal[i][j]=Pascal[i-1][j-1]+Pascal[i-1][j];
    				}
    				else{
    					Pascal[i][j]=1;
    				}
    				
    				
    				System.out.print(Pascal[i][j]+" ");
    			}
    			System.out.println();
    		}
    		
    	}
    }
    

    特殊的数字

    问题描述

    153是一个非常特殊的数,它等于它的每位数字的立方和,即153=111+555+333。编程求所有满足这种条件的三位十进制数。


    数据规模与约定

    输入格式 输出格式
    按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。

    Java源代码

    public class Main {
    		public static void main(String[] args){	
    		for(int i = 1; i < 10; i++)
    			for(int j = 0; j < 10; j++)
    				for(int k = 0; k < 10; k++)
    					if(i*100+j*10+k==Math.pow(i,3)+Math.pow(j, 3)+Math.pow(k, 3))
    						System.out.println(i*100+j*10+k);			
    	}
    }
    

    回文数

    问题描述

    1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。

    数据规模与约定

    输入格式 输出格式
    按从小到大的顺序输出满足条件的四位十进制数。

    Java源代码

    public class Main {
    		public static void main(String[] args){	
    		for(int i = 1; i < 10; i++)
    			for(int j = 0; j < 10; j++)
    				for(int k = 0; k < 10; k++)
    					for(int l = 0; l < 10; l++)
    					if(i==l&&j==k)
    						System.out.println(i*1000+j*100+k*10+l);			
    	}
    }
    

    特殊回文数

    问题描述

    123321是一个非常特殊的数,它从左边读和从右边读是一样的。
    输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。

    数据规模与约定

    1<=n<=54。

    输入格式 输出格式
    输入一行,包含一个正整数n。 按从小到大的顺序输出满足条件的整数,每个整数占一行。

    Java源代码

    import java.util.Scanner;
    public class Main {
    	public static void main(String[] agrs) {
    		Scanner sc = new Scanner(System.in);
    		int n = sc.nextInt();
    		
    		//五位形式 abcba
    		for (int i = 1; i < 10; i++)
    			for (int j = 0; j < 10; j++) 
    				for (int k = 0; k < 10; k++) 
    					if (i * 2 + j * 2 + k == n)
    						//有个空字符自动转型拼接
    						System.out.println("" + i + j + k + j + i);
    		
    		
    		//六位形式 abccba
    		for (int i = 1; i < 10; i++) 
    			for (int j = 0; j < 10; j++) 
    				for (int k = 0; k < 10; k++) 
    					if (i * 2 + j * 2 + k * 2 == n)
    						System.out.println("" + i + j + k + k + j + i);
    			
    	}
    }
    

    十进制转十六进制

    问题描述

    十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有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。
      给出一个非负整数,将它表示成十六进制的形式。

    数据规模与约定

    0<=a<=2147483647

    输入格式 输出格式
    输入包含一个非负整数a,表示要转换的数。 输出这个整数的16进制表示

    Java源代码

    import java.util.Scanner;
    
    public class Main {
    	public static void main(String[] agrs) {
    		Scanner sc = new Scanner(System.in);
    		String num = sc.nextLine();
    		sc.close();
    		System.out.println(Long.parseLong(num, 16));
    	}
    }
    
  • 相关阅读:
    简单命令行总结
    [大餐]开发摘记1--我的Fragment通信的框架 | 卖牙膏的芖口钉
    DZNEmptyDataSet的使用
    Java笔记(一)
    mingster.com
    2014新年福利,居然有人将Ext JS 4.1的文档翻译了
    【翻译】Sencha Touch 2入门:创建一个实用的天气应用程序之三
    【翻译】在Ext JS应用程序中使用自定义图标
    【翻译】Siesta事件记录器入门
    【翻译】使用新的Sencha Cmd 4命令app watch
  • 原文地址:https://www.cnblogs.com/1101-/p/12634324.html
Copyright © 2020-2023  润新知