蓝桥杯准备
%程序羊%
低姿态求学,高姿态生活
展开
-
递归求阶乘和1-100的和
所谓递归其实就是从前有座山,山上有座庙,庙里有个老和尚和小和尚,老和尚给小和尚讲故事,讲的是从前有座山...,无休止的重复一件事,但是不同的是里边所给的参数不同,这个是由我们来定的。而且我们还要给出口,也就是结束的地方。递归求阶乘代码:import java.util.Scanner;public class 递归求阶乘 { public static void main(String[] args) { Scanner sc = new Scanner(System.in)原创 2021-04-17 20:36:14 · 830 阅读 · 5 评论 -
控制台输出菱形 java
图形题,感觉有点小绕,做了点笔记,大家可以参考代码:import java.util.Scanner;public class 菱形 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for (int i=0;i<(n-1)/2;i++){ for (int j原创 2021-04-17 00:33:44 · 199 阅读 · 0 评论 -
分解质因数和判断两数是否互为质数--java
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: 如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。如果n <= k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。如果n不能被k整除,则用k+1作为k的值,重复执行第一步。想法:最近练习了几道有关质数题,发现都用到了while循环还有2(2是最小的质数)这个数,2是很特殊的原创 2021-04-13 15:28:18 · 803 阅读 · 0 评论 -
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
ascasc原创 2021-04-13 07:40:42 · 678 阅读 · 0 评论 -
特别数之和--java
思路:当我们考虑数字是否包含某个数字时(100包含一个1两个0),可以选择求余求除方法或者把数字转化成字符串,用字符串的contains方法。TIPS:interger.toString()方法会将数字转成字符串 contains方法判断是否包含某个字符代码:import java.util.Scanner;public class 特别数之和 { public static void main(String[] args) { Scanner sc = new Sc.原创 2021-04-12 15:40:29 · 159 阅读 · 0 评论 -
蓝桥杯方格计数--java
思路:圆是对称的,所以我们可以先算出来圆的1/4,有多少个方格,从原点看的话,只需要看最右上方的点到原点的距离是不是小于半径代码:public class 方格计数 { public static void main(String[] args) { int r=1000; int count = 0; for (int i=1;i<=r;i++){ for (int k=1;k<=r;k++){ .原创 2021-04-09 18:59:44 · 148 阅读 · 0 评论 -
蓝桥杯 单词分析 java
思路:我们输入一个字符串之后,如果重复了,我们该怎么记录,这是很重要的问题。我的思路是把输入的字符串放到StringBuilder创建的容器当中。用,但是又没有直接匹配的方法,于是想到了ACSLL值,我们定义一个数组,比如 a-'a’就是0,通过下标让数组中对应的值加1,然后再通过比较数组中的数来确定出现次数最多的元素和出现的次数。代码:import java.util.Scanner;public class 单词分析 { public static void main(String[].原创 2021-04-09 00:46:17 · 459 阅读 · 1 评论 -
成绩分析--java
思路:思路很简单,就是先在外边定义max,min,(需要注意的是:在这个题中没事,但是以后要是定义最小值或者定义最大值不要自己直接写个0,可能数据中还有比0大或者小的,定义成数组中的元素),这道题稍微有一点需要注意的是如果保留两位小数,用到了一个方法,String.format("%.2f",数)代码:import java.util.Scanner;public class 成绩分析 { public static void main(String[] args) { S.原创 2021-04-08 23:47:53 · 267 阅读 · 0 评论 -
蛇形填数--java
思路:就是找规律,考试的时候,这种题先找规律吧,a[n][n]=nn+(n-1)(n-1)import java.util.Scanner;public class 蛇型填数 { public static void main(String[] args) { Scanner sc =new Scanner(System.in); int n = sc.nextInt(); //a[n][n]=n2+(n-1)2 .原创 2021-04-08 20:02:16 · 114 阅读 · 0 评论 -
蓝桥杯门牌制作javaB组
思路:根据题的意思是求出1-2020个位上有多少个2,十位上有多少个2,百位上有多少个2,千位上有多少个2,不知道有没有跟我一样傻的,千位上就直接觉得就一个–2020,人家还有2020…呢。话不多说,上代码:public class 门牌制作 { public static void main(String[] args){ int k=0; for (int i=1;i<=2020;i++){ if (i%10==2){ .原创 2021-04-08 15:20:33 · 202 阅读 · 0 评论 -
报时助手--java
思路:有题可知0-20,30,40,50是一个规则,也就是一个分界线,我们可以直接定义数组即可,重点就是大于20之后我们应该怎么做?我的做法是比如56,56/10=5,再让5*10=50,50可以在数组中找到,56%10=6,6也可以在数组中找到,那么就可以分别判断输出,但是还有一个小坑也就是当我们输入的第二个数如果是0的话,我们必须输出的是第一个数+o’clock,使用这个就得单独判断。代码:import java.util.Scanner;public class timeAssistant .原创 2021-04-06 22:13:51 · 106 阅读 · 0 评论 -
2n皇后--java
思路:做这个题,首先需要明白怎么放皇后,放好之后怎么检查,所以我定义了两个方法,一个方法是放皇后,在第一行如果成功放置了,就直接放下一行,另一个方法是检查,因为放置的时候,满足条件就直接下一行所以我们需要检查的就是两个相同的皇后是不是在同一个列,或者是不是在左或者右对角线。建议大家:直接通过代码来进行理解,搜了bilibili等视频网站,感觉比较耗费时间还理解的不是很好,建议哈!!!代码:import java.util.Scanner;public class queen2n { sta.原创 2021-04-06 11:19:49 · 78 阅读 · 0 评论 -
Huffuman树--java
思路:排序找到最小的两个值,两值之和既是原数组的最后一个元素也是sum的加和。这里边用到了ArrayList(动态数组)方法:ArrayList 是 java 集合框架中比较常用的数据结构。继承自 AbstractList,实现了 List 接口。底层基于数组实现容量大小动态变化。允许 null 的存在。同时还实现了 RandomAccess、Cloneable、Serializable 接口,所以ArrayList 是支持快速访问、复制、序列化的。需要注意的是当我们删除元素的时候,执行remove原数组.原创 2021-04-01 12:18:40 · 120 阅读 · 0 评论 -
java 高精度加法
思路:第一步:把字符串一个一个切割好放进数组中第二步:创建一个数组长度存放加和好的数据第三步:找到最小的数的长度判断相加次数第四步:逐位相加第五步:将未相加的数放到all数组前边第六步:判断r是否还有值,若有,放到最前边第七步:判断最前边是不是0,如果是的话就去掉第八步:倒序输出代码:import java.util.Arrays;import java.util.Scanner;public class precision { public static void ma.原创 2021-03-31 22:29:45 · 321 阅读 · 0 评论 -
序列求和--long型解决问题
思路:正常来说我们就直接for循环加和就行,但是如果特别大的话int的取值范围为-2147483648到±2147483648就显得不够了。而且采用for循环特别耗费性能,可能当数值较大的时候,需要运行的时长就会比较大,而long的值-9223372036854775808到9223372036854775807,在数值上更加符合,为了提高性能我们采用了等加算法s= n(n+1)/2代码:import java.util.Scanner;public class sequence { pu.原创 2021-03-30 21:38:54 · 181 阅读 · 0 评论 -
圆的面积(如何保留七位小数)
思路:圆的面积s=pI * r * r,这个都知道,难点在于保留七位小数,这里用到了JAVA字符串格式化-String.format()转换浮点型代码:import java.util.Scanner;public class circle { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); N.原创 2021-03-30 21:17:55 · 492 阅读 · 0 评论 -
Fibonacci(斐波那契)数列
思路:定义一个长度很大的数组,arr[i] = arr[i-1]+arr[i-2],注意不要用int[] arr = new int[n],这个意味着长度取决于n,当我们下边定义arr[1]=1,arr[2]=1,会出问题。代码:import java.util.Scanner;public class Fibonacci { public static void main(String[] args) { Scanner sc = new Scanner(System..原创 2021-03-29 21:08:52 · 324 阅读 · 0 评论 -
闰年判断--蓝桥杯
思路:根据条件设判断即可import java.util.Scanner;public class leapYear { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); if(n%4==0&&n%100!=0 || n%400==0){ System.out.原创 2021-03-29 17:53:19 · 97 阅读 · 0 评论 -
01整数--蓝桥杯
思路:循环从1-32,利用interger的toBinaryString转成二进制,如果长度不够就补零。代码:public class character { public static void main(String[] args){ String str = ""; int len; for (int i=0;i<32;i++){ str = Integer.toBinaryString(i); .原创 2021-03-29 17:44:05 · 79 阅读 · 0 评论 -
字母图形
思路:这里用到了绝对值,和强制转化为字符下边是我的思路历程:i=0 j-iA B C D E F G0 1 2 3 4 5 6i=1 j-iB A B C D E F|0-1| 0 1 2 3 4 5i=2 j-iC B A B C D E|0-2| |0-1| 0 1 2 3 4代码:import java.util.Scanner;public class letter { public static void main(S.原创 2021-03-28 23:41:00 · 65 阅读 · 0 评论 -
数列特征
思路:题比较简单就是循环比较,有什么优化大家可以留言呦import java.util.Scanner;public class features { 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<.原创 2021-03-28 22:59:12 · 66 阅读 · 0 评论 -
查找整数(java)
思路:循环数组,当数组当中的某个数与我们传入的数相等时,break;最开始我是用了 StringBuilder来存放数组中与我们传入的数相等的下标再+1的(因为这里边要求输出的是第几个而不是下标所以要+1),用了StringBuilder再取第一个数,后来反省自己太傻了,直接找到了就break就行了。还遇到一个小问题,我刚开始定义了两个Scanner来进行输入,在我的编译器上显示没问题,一提交就说错误,不知道咋回事。话不多说,看代码:import java.util.Scanner;public cl.原创 2021-03-27 21:39:26 · 258 阅读 · 0 评论 -
杨辉三角形(java)
思路:重点是定义一个二维数组,arr[i][j] = arr[i][j-1]+arr[i][j],除此之外还要考虑到每一列都是1还有就是当i==j时a[i][j]=1。代码:import java.util.Scanner;public class triangle { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextIn.原创 2021-03-26 20:53:36 · 272 阅读 · 1 评论 -
特殊的数字(java)
思路:for循环三位数,写一个方法求出三位数各个位上数的三次方,再相加,比较我们循环出的数是不是与方法求出的数相等;对了,大家在测试的时候一定要把类名改成Main.人家这么规定的。代码:public class Main{ public static void main(String[] args){ for (int i=100;i<1000;i++){ if(i == text(i)){ System.out.p.原创 2021-03-26 18:36:56 · 230 阅读 · 0 评论 -
特殊回文数(java)
思路:利用了StringBuilder的toString和reverse方法,通过题干给的五位和六位我们可以找出for循环的条件。然后通过循环使得数据+1,然后再通过reverse与原数据做对比,如果相等我就再把这个数据的每个数字相加,相加之后与给的n作比较,如果既是回文数,这个回文数的各位相加又等于n的话我们就输出。(TIPS:注意在相加的时候拿到的值是ACSALL值,所以需要-48)代码:import java.util.Scanner;public class specialPalindro.原创 2021-03-26 18:09:11 · 550 阅读 · 0 评论 -
十六进制转八进制(JAVA)
思路:先将16进制转成二进制,再把二进制转成8进制,需要用到java Integer的 toBinaryString 和toOctalString方法。还涉及到补位通过取余进行手动补充。写了两个方法。此外还有先导零,我们需要在输出的时候,先判断从k!=0的时候开始截取,代码如下:import java.util.Scanner;public class sixteen { public static void main(String[] args) { /.原创 2021-03-26 15:58:35 · 314 阅读 · 0 评论