今日基础小题目:
1、减肥项目
输入星期数,显示今天的减肥活动;周一:跑步;周二:游泳;周三:慢走;周四:动感单车;周五:拳击;周六:爬山;周天:好好吃一顿;`Scanner sc = new Scanner(System.in);
//.eruals()版本
Scanner sc = new Scanner(System.in);
while(true){
System.out.println("请输入星期数:");
String inp = sc.next();
if(inp.equals("一")){
System.out.println("跑步");
}else if(inp.equals("二")){
System.out.println("游泳");
}else if(inp.equals("三")){
System.out.println("慢走");
}else if(inp.equals("四")){
System.out.println("动感单车");
}else if(inp.equals("五")){
System.out.println("拳击");
}else if(inp.equals("六")){
System.out.println("爬山");
}else if(inp.equals("七")){
System.out.println("好好吃一顿");
}else {
System.out.println("您输入的时间有误,请重新输入!!!");
}
}
//数字版本
Scanner sc = new Scanner(System.in);
while(true){
System.out.println("请输入星期数:");
int inp = sc.nextInt();
if(inp<1 || inp>7){
System.out.println("您输入的时间有误,请重新输入!!!");
}else if(inp == 1){
System.out.println("跑步");
}else if(inp == 2){
System.out.println("游泳");
}else if(inp == 3){
System.out.println("慢走");
}else if(inp == 4){
System.out.println("动感单车");
}else if(inp == 5){
System.out.println("拳击");
}else if(inp == 6){
System.out.println("爬山");
}else{
System.out.println("好好吃一顿");
}
}
此为 if 版本
//Switch版本
while (true){
System.out.println("请输入星期数:");
int num = sc.nextInt();
switch (num) {
case 1:
System.out.println("跑步");
break;
case 2:
System.out.println("游泳");
break;
case 3:
System.out.println("慢走");
break;
case 4:
System.out.println("动感单车");
break;
case 5:
System.out.println("拳击");
break;
case 6:
System.out.println("爬山");
break;
case 7:
System.out.println("好好吃一顿");
break;
default:
System.out.println("您的输入有误,请重新输入!!!");
}
}
此为 switch 版本
主要思路:
- 键盘录入一个星期数,用一个变量接收
- 对星期数进行判断,这里用 if 语句实现
- 在对应的语句控制中输出相应的减肥计划
2、逢七过(任意数字开始报数,当遇到7或是7的倍数,都要说:过;打印1-100中符合规则的数据
)
System.out.println("请开始报数:");
int num = sc.nextInt();
for (int i = num; i <= 100; i++) {
if (i%7 == 0 || i%10 == 7 || i/10%10 == 7){
System.out.println("过");
continue;
}
System.out.println(i);
}
3、不死神兔:有一对兔子在出生后第三个月起,每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子不死,请问到第二十个月兔子有多少对
主要思路:
第一个月:1
第二个月:1
第三个月:2 ------->第一个三月
第四个月:3
第五个月:5 ------->第二个三月
第六个月:7
第七个月:12
1,1,2,3,5,7,12,19......
int[] arr = new int[20];
arr[0] = 1;
arr[1] = 1;
for (int i = 2; i < arr.length; i++) {
arr[i] = arr[i-2] + arr[i-1];
}
System.out.println("第二十个月的兔子数为:"+arr[19]);
- 为了存储多对兔子,定义一个数组,动态初始化长度为20
- 一、二月兔子数已知所以arr[0] = 1;arr[1] = 1;
- 循环实现计算每个月的兔子数
- 输出数组最后一个元素的值(第20个月的兔子对数)
4、百钱百鸡:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一,百钱买鸡;问鸡翁,鸡母,鸡雏各几何?
for (int x = 0; x <= 20 ; x++) {
for (int y = 0; y <= 33 ; y++) {
int z = 100-x-y;
if(z%3==0 && 5*x+3*y+z/3==100){
System.out.println("能买鸡翁的个数为:"+x+"只,"+"鸡母的个数为:"+y+"只,"+"鸡雏的个数为:"+z+"只");
}
}
}
主要思路:
- 假设鸡翁X,鸡母Y,鸡雏Z,则X+Y+Z = 100只;5X+3Y+Z/3 = 100钱;
- 单看各种鸡型:0 <= X <=20; 0 <= Y <=33; 0 <= Z <= 100;
- 使用穷举法可罗列出X,Y,Z 的值
- 第一层循环,用于表示鸡翁的范围,初始化表达式变量定义为x = 0;判断条件为x <= 20;
- 第二层循环,用于表示鸡母的范围,初始化表达式变量定义为y = 0;判断条件为y <= 33;
- 鸡雏表示为:z = 100 - x -y;
- 判断表达式z%3 == 0 和 5x+3y+z/3 = 100 是否同时成立,如果成立则输出相对应 x , y , z 的值
5、数组元素求和:有这样一个数组,元素是{68,27,95,88,171,996,51,210};求其中满足要求的元素和(个位十位不能是7,并且只能是偶数)
int[] arr = {68,27,95,88,171,996,51,210};
int sum = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i]%10 != 7 && arr[i]/10%10 != 7 && arr[i]%2 == 0){
sum += arr[i];
}
}
System.out.println(sum);
6、数组内容相同:比较两个数组的内容是否相同
int[] arr1 = {1, 2, 3, 4, 5, 6};
int[] arr2 = {1, 2, 3, 4, 5, 4};
boolean flag = compare(arr1, arr2);
System.out.println(flag);
public static boolean compare(int[] arr1, int[] arr2) {
if (arr1.length != arr2.length) {
return false;
}
for (int i = 0; i < arr1.length; i++) {
if (arr1[i] != arr2[i]) {
return false;
}
}
return true;
}
主要思路:
- 定义两个数组,进行静态初始化
- 定义一个方法,用于比价两个数组是否相同;返回值类型为boolean;参数为int[ ];
- 比较数组内容是否相同,首先比较数组长度(只要不同返回false),其次遍历比较每个元素(有不同则返回false)
- 调用方法,变量接受
- 输出结果
来源:CSDN
作者:Accompagner
链接:https://blog.csdn.net/Accompagner/article/details/104736552