1、生成10个1到20(范围:[1,20])之间的不重复的随机数
代码:
package Weekly_Task;import java.util.HashSet;import java.util.Iterator;/*** @author Devil* @create 2021-10-31-23:13*/public class Demo9 {public static void main(String[] args) {HashSet<Integer> set = new HashSet<>();while(set.size()<10) {set.add((int)(Math.random()*20+1));}Iterator<Integer> iter = set.iterator();while(iter.hasNext()) {System.out.print(iter.next()+" ");}}}
控制台输出:
17 18 3 19 4 5 6 9 10 12
2、楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,也可以一步上3阶,编一程序计算共有多少种不同的走法。
输入楼梯的台阶数,输出有多少种走法。(递归)(作为思考题)
代码:
package Weekly_Task;import java.util.Scanner;/*** @author Devil* @create 2021-11-01-10:30*/public class Demo10 {public static void main(String[] args) {Scanner input = new Scanner(System.in);int n = input.nextInt();System.out.println(upStairs(n));}public static int upStairs(int n) {if (n <= 0) {return 0;} else if (n == 1) {return 1;} else if (n == 2) {return 2;} else if (n == 3) {return 4;} else {return upStairs(n - 1) + upStairs(n - 2) + upStairs(n - 3);}}}
代码:
package Weekly_Task;import java.util.Scanner;/*** @auther Devil(丁杨维)* @create 2021-11-01-10:33*/public class Demo11 {public static void main(String[] args) {Scanner input = new Scanner(System.in);int n = input.nextInt();int ge = 0;int shi = 0;int bai = 0;ge = n%10;shi = n/10%10;bai = n/100;for(int i = 0; i<bai; i++) {System.out.print("B");}for(int i = 0; i<shi; i++) {System.out.print("S");}for(int i = 1; i<=ge; i++) {System.out.print(i);}}}
输入样例:
在这里给出一组输入。例如:
8
输出样例:
在这里给出相应的输出。例如:
81
3、让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12...n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。
输入格式:
每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。
输出格式:
每个测试用例的输出占一行,用规定的格式输出 n。
输入样例 1:
234
输出样例 1:
BBSSS1234
输入样例 2:
23
输出样例 2:
SS123
4.为什么重写equals时候被要求重写hashCode()?
根据Object.HashCode的通用约定的第二条
- 如果两个对象根据equals(Object)方法是相等的,那么调用这两个对象中任一个对象的hashCode方法必须产生同样的整数结果。 如果我们只重写equals方法而没有重写HashCode方法就可能会出现equals方法判断为true但HashCode却不同的情况如创建一个类重写一个equals方法,只要比较其中某一个属性就判断两个对象是否相等,但未重写HashCode方法,这样就会营造出造成HashSet添加了相同的对象的情况,违背了HashCode的通用约定的第二条。
5.简要谈谈JDK,JVM,JRE三者的区别
JDK包含JRE,JRE包含JVM。 JDK:开发者工具包、JRE:Java的运行环境和运行时类库、JVM:Java虚拟机,JDK是面向开发者使用的,JRE和JVM是面向普通用户使用的。
