Java基础测试题
1.逢七过思路
//根据规则,用if语句实现数据的判断:要么个位是7,要么十位是7,要么能够被7整除
if (i % 10 == 7 || i / 10 % 10 == 7 || i % 7 == 0) {
//在控制台输出满足规则的数据
System.out.println(i);
}
秘诀:获取个位与十位的通用语句。
2.不死神兔思路
需求:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
假如兔子都不死,问第二十个月的兔子对数为多少?
思路:
1:为了存储多个月的兔子对数,定义一个数组,用动态初始化完成数组元素的初始化,长度为20
2:因为第1个月,第2个月兔子的对数是已知的,都是1,所以数组的第1个元素,第2个元素值也都是1
3:用循环实现计算每个月的兔子对数
4:输出数组中最后一个元素的值,就是第20个月的兔子对数
秘诀与细节:通过数组,可以把每一天的兔子数量列出来,找规律。循环下标记得是从 2 开始。
3.百钱百鸡思路
需求:
我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。
百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
思路:
1:第1层循环,用于表示鸡翁的范围,初始化表达式的变量定义为 x=0,判断条件是x<=20
2:第2层循环,用于表示鸡母的范围,初始化表达式的变量定义为 y=0,判断条件是y<=33
3:这个时候,用于表示鸡雏的变量 z = 100 – x – y
4:判断表达式 z%3==0 和表达式 5*x + 3*y + z/3 = 100 是否同时成立,如果成立,输出对应的 x,y,z 的值,
就是对应的鸡翁,鸡母,鸡雏的值
秘诀与细节:其实也是通过循环让计算机一个个数去试;设未知数,注意范围;下标是从0开始的,因为不是所有品种的鸡都得买;最后要满足的等式。
4.判断数组是否相同
需求:
设计一个方法,用于比较两个数组的内容是否相同
思路:
1:定义两个数组,分别使用静态初始化完成数组元素的初始化
2:定义一个方法,用于比较两个数组的内容是否相同
3:比较两个数组的内容是否相同,按照下面的步骤实现就可以了
首先比较数组长度,如果长度不相同,数组内容肯定不相同,返回false
其次遍历,比较两个数组中的每一个元素,只要有元素不相同,返回false
最后循环遍历结束后,返回true
4:调用方法,用变量接收
5:输出结果
秘诀与细节:1.先看长度是否一样;2.遍历数组,只管不同的时候。
5.查找元素位置
需求:
已知一个数组 arr = {19, 28, 37, 46, 50}; 键盘录入一个数据,查找该数据在数组中的索引,并在控制台输出找到的索引值。
思路:
1:定义一个数组,用静态初始化完成数组元素的初始化
2:键盘录入要查找的数据,用一个变量接收
3:定义一个索引变量,初始值为-1
4:遍历数组,获取到数组中的每一个元素
5:拿键盘录入的数据和数组中的每一个元素进行比较,如果值相同,就把该值对应的索引赋值给索引变量,并结束循环
6:输出索引变量
秘诀与细节:1.先定义一个位置变量;2.位置变量初始值定义为-1;3.循环遍历时只写 if,不要写else!!