欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

蓝桥练习系统——基础练习(非vip题目)

时间:2023-07-07

大家好,这里是祁十一!准备记录一下自己的备赛情况,这是在蓝桥杯的练习系统中做的一些题目,每天会做几道题啥的,基本上就是顺一下我的思路,做一下题目啥的,希望大家能理解我说的话吧!(如果有人看到的话哈哈哈)

目录

一、入门篇

1、A+B问题

2、序列求和

3、圆的面积

4、Fibonacci数列

二、基础篇

1、闰年判断

2、01字串

3、字母图形

4、数列特征

5、查找整数

6、杨辉三角

7、特殊的数字

8、回文数

9、特殊回文数

10、十进制转十六进制

11、十六进制转十进制

12、十六进制转八进制

13、数列排序


一、入门篇

1、A+B问题

【题目】输入A、B,输出A+B。

public class Main{ public static void main(String args[]) { Scanner sc = new Scanner(System.in); Integer a = sc.nextInt(); Integer b = sc.nextInt(); System.out.println(a + b); }}

2、序列求和

【题目】求1+2+3+...+n的值。(1 <= n <= 1,000,000,000)

        这个题有两种解题方法:一个是直接相加,另一个是用等差数列求和公式。

//直接相加import java.util.*;public class Main{public static void main(String[] args) {long n = new Scanner(System.in).nextInt();long sum=0; for(long i=0;i<=n;i++) { sum+=i; } System.out.print(sum);}}

//用等差求和公式import java.util.*;public class Main{ public static void main(String[] args) { long result = 0; Scanner scanner=new Scanner(System.in); long n=scanner.nextLong(); if (1<=n&&n<=1000000000) { result=(n*(n+1))/2; } System.out.println(result); }}

3、圆的面积

【题目】给定圆的半径r,求圆的面积。(输出结果保留小数点后7位)

        注意这个小数点后七位的表示!

import java.util.*;public class Main{public static void main(String[] args) {int r = new Scanner(System.in).nextInt(); System.out.printf("%.7f",(Math.PI*r*r));}}

4、Fibonacci数列

【题目】Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。

当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。

        当计算只包含加法、减法和乘法的整数表达式除以正整数n的余数,可以在每步计算之后对n取余,结果不变。

import java.util.*;public class Main {public static void main(String[] args) { int[] a = new int[10000001]; a[1] = 1; a[2] = 1; int n = new Scanner(System.in).nextInt(); for (int i=3; i<=n; i++){ a[i] = (a[i-1]+a[i-2])%10007; } System.out.println(a[n]); }}

二、基础篇

1、闰年判断

【题目】给定一个年份,判断这一年是不是闰年。

        闰年条件:1、年份是4的倍数而不是100的倍数;2、年份是400的倍数。

import java.util.*;public class Main{public static void main(String[] args) {Scanner sc=new Scanner(System.in);int year=sc.nextInt();if(((year%4)==0 && (year%100!=0)) ||year%400==0) {System.out.println("yes");}else System.out.println("no");}}

2、01字串

【题目】对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:00000  00001  00010  00011  00100..、...请按从小到大的顺序输出这32种01串。

        注意5位长度的表示;学会利用Java中的函数。

import java.util.*;public class Main{public static void main(String[] args) {for(int i=0;i<32;i++){ //将整数转化为二进制字符串String result = Integer.toBinaryString(i); //将字符串转化为整数int n = Integer.parseInt(result);System.out.printf("%05dn",n);}}}

3、字母图形

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

ABCDEFG

BABCDEF

CBABCDE

DCBABCD

EDCBABC

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

        ASCII码将数字与字母联系起来,找到行列之间的下标关系,找规律!

import java.util.*;public class Main{public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();for(int i = 0 ; i < n; i++) {for(int j = 0 ; j < m ;j++) {char c = (char)(Math.abs(i - j) + 'A');System.out.print(c);}System.out.println();}}}

4、数列特征

【题目】给出n个数,找出这n个数的最大值,最小值,和。(1 <= n <= 10000)

        两边取极端,向中间靠近,求得最大、最小值。

import java.util.*;public class Main{public static void main(String[] args) {Scanner sc =new Scanner(System.in);int n=sc.nextInt();int[] arr=new int [n];int sum=0,t;int min=10000;int max=-10000;for(int i=0;imax)max=t;else max=max; if(t

5、查找整数

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

import java.util.*;public class Main{public static void main(String[] args) {Scanner sc =new Scanner(System.in);int n=sc.nextInt();int[] arr=new int [n];for(int i=0;i

6、杨辉三角

【题目】杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。

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

   1 

  1 1 

 1 2 1 

1 3 3 1

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

import java.util.*;public class Main{public static void main(String[] args) {Scanner sc =new Scanner(System.in);int n=sc.nextInt();int[][] a=new int[n][n];for(int i=0;i

7、特殊的数字

【题目】153是一个非常特殊的数,它等于它的每位数字的立方和,即153=1*1*1+5*5*5+3*3*3。编程求所有满足这种条件的三位十进制数。

        注意数字的每一位的表示!!!

public class Main{public static void main(String[] args) {for(int n=100;n<=999;n++) {int a=n%10;int b=(n/10)%10;int c=n/100;if(n==((a*a*a)+(b*b*b)+(c*c*c))) {System.out.println(n);}}}}

8、回文数

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

public class Main{public static void main(String[] args) {for(int i=1000;i<10000;i++) {int a=i%10;int b=((i-a)/10)%10;int c=((((i-a)/10)-b)/10)%10;int d=((((((i-a)/10)-b)/10)-c)/10)%10;if(a==d&&b==c) {System.out.println(i);}}}}

9、特殊回文数

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

import java.util.*;public class Main{public static void main(String[] args) {Scanner sc=new Scanner(System.in);int n=sc.nextInt();for(int i=10000;i<999999;i++) {if(i/100000==0) {int a=i%10; int b=((i-a)/10)%10;int c=((((i-a)/10)-b)/10)%10;int d=((((((i-a)/10)-b)/10)-c)/10)%10;int e=((((((((i-a)/10)-b)/10)-c)/10)-d)/10)%10;if(a==e&&b==d&&(a+b+c+d+e)==n) {System.out.println(i);}} else {int a=i%10; int b=((i-a)/10)%10;int c=((((i-a)/10)-b)/10)%10;int d=((((((i-a)/10)-b)/10)-c)/10)%10;int e=((((((((i-a)/10)-b)/10)-c)/10)-d)/10)%10;int f=((((((((((i-a)/10)-b)/10)-c)/10)-d)/10)-e)/10)%10;if(a==f&&b==e&&c==d&&(a+b+c+d+e+f)==n) {System.out.println(i);}}}}}

10、十进制转十六进制

【题目】给出一个非负整数,将它表示成十六进制的形式。

        static String valueOf(char c)  返回 char参数的字符串 char形式。

import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);long a = sc.nextLong();StringBuilder str = new StringBuilder();int x;if(a==0){System.out.println(0);return ;}while(a>0){x = (int) (a % 16);switch(x){case 10: str.append("A");break;case 11: str.append("B");break;case 12: str.append("C");break;case 13: str.append("D");break;case 14: str.append("E");break;case 15: str.append("F");break;default: str.append(String.valueOf(x));break;}a = a/16;}StringBuilder ans = new StringBuilder();for(int i=str.length()-1;i>=0;i--){ans.append(str.charAt(i)); }System.out.println(ans);}}

11、十六进制转十进制

【题目】输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。

        按权展开,注意位数的变化。ans = ans+x*((long)Math.pow(16, dig));

import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String str = sc.next();long ans=0;int dig = str.length()-1;for(int i=0;i

12、十六进制转八进制

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

        当二进制数位置不够时,进行补位;

        StringBuilder可用来申明可变字符串; charAt(i)可以用来遍历字符串中的每个字符。

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();for(int cnt=0;cnt0)System.out.print(ans);boolean flog = true;for(int i=s;i

13、数列排序

【题目】给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200

        冒泡排序要记牢!!!

import java.util.*;public class Main {public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n; int[] arr = new int[205]; n = scanner.nextInt(); for(int i = 0 ; i < n ; i++) arr[i] = scanner.nextInt(); sort(arr,n); for(int i = 0 ; i < n ; i++) System.out.print(arr[i] + " ");}private static void sort(int[] arr,int n) { for(int i = 0; i < n - 1 ;i++) { for(int j = 0 ; j < n - 1 - i ; j++) if(arr[j] > arr[j + 1]) { int t = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = t; } }}}


总而言之,言而总之,这个基础练习果然比较基础,继续要加油啊!!!!

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。