一、减肥计划
需求:键盘输入星期数,判断今日减肥活动
例:星期一:跑步,星期二:游泳,星期三:慢走…
// if语句
//导入Scanner包(用于键盘输入)
import java.util.Scanner;
public class Demo1{
public static void main(String[] args){
// 获取键盘输入数据
Scanner sc = new Scanner(System.in);
// 提示用户信息
System.out.println("请输入星期:");
// 获取数据
int i = sc.nextInt();
// if语句进行判断
if(i == 1){
// 键盘输入为1
System.out.println("跑步");
}else if(i==2){
// 键盘输入为2
System.out.println("游泳");
}else if(i==3){
// 键盘输入为3
System.out.println("慢走");
}else if(i==4){
// 键盘输入为4
System.out.println("骑单车");
}else if(i==5){
// 键盘输入为5
System.out.println("拳击");
}else if(i==6){
// 键盘输入为6
System.out.println("爬山");
}else if(i==7){
// 键盘输入为7
System.out.println("休息一天");
}else{
// 输入不为星期1~7时,提示信息
System.out.println("请输入1~7之间数字!");
}
}
}
//switch语句,与if语句操作类似
import java.util.Scanner; // 获取键盘输入
public class Demo2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个星期:");
int i = sc.nextInt();
switch (i) {
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("请输入1~7之间数字");
}
}
}
二、逢7过
规则:从任意数字开始报数,当报出7或7的倍数时,要说过。
需求:为游戏方便,直接在控制台中打印出1~100中所有满足条件的数字。
public class Demo3 {
public static void main(String[] args) {
// 循环遍历1~100
for (int i = 1; i < 100; i++) {
// i%10 == 7判断个位数是否为7
// i/10%10 == 7 判断十位数是否为7
// i%7 == 0 判断数字是否为7的倍数
if (i % 10 == 7 || i / 10 % 10 == 7 || i % 7 == 0) {
System.out.println("过");
} else { // 不是以上条件,输出原数字
System.out.println(i);
}
}
}
}
三、不死兔
需求:有一对兔子,从出生后第三个月起开始每月生一对兔子,小兔子长到三个月后每月有生一兔子,假设兔子不死,问第50个月后,有多少对兔子?
由题目可知,第一个月有1对兔子,第二个月有1对兔子,第三个月有2对兔子,第四个月有3对兔子…,依次类推可知,从第三个月开始每个月兔子数量等于前两个月兔子数量之和。
public class Demo4 {
public static void main(String[] args) {
// 建立数组
int[] arr = new int[50];
// 循环遍历整个数组
for(int x=2;x< arr.length;x++){
// 第x月兔子数量
arr[x] = arr[x-2]+arr[x-1];
}
// 输出结果
System.out.println(arr[50]);
}
}
四、百鸡百钱
需求:张丘建《算经》一书中提出:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一,百钱买百鸡,问鸡翁、鸡母、鸡雏几何?
设鸡翁x只,鸡母y值,鸡雏z只,则:
x + y + z = 100
5*x + 3*y + z/3 = 100
代码如下:
public class Demo5 {
public static void main(String[] args) {
// 循环遍历(最多可有20只鸡翁)
for(int x = 0;x<=20;x++){
// 循环遍历(最多可有33只鸡母)
for(int y = 0;y<=33;y++){
// 鸡雏 = 鸡翁 - 鸡母
int z = 100 - x - y;
// 鸡雏三钱一只,所以鸡雏数一定为3的倍数即z%3==0
// 由分析可知 5*x+3*y+z/3 == 100
if(z%3 == 0 && 5*x+3*y+z/3 == 100){
// 输出所有方式
System.out.println(x+","+y+","+z);
}
}
}
}
}
// 结果:
0,25,75
4,18,78
8,11,81
12,4,84
五、查找
需求:已知一数组,从键盘录入一数据,查找该数据在数组中的索引值。
// 获取键盘数据
import java.util.Scanner;
public class Demo8 {
public static void main(String[] args) {
// 定义一个数组
int[] arr = {789,32536,658,124,679};
Scanner sc = new Scanner(System.in);
// 提示输入数据
System.out.println("请输入一个数字:");
// 获取键盘输入数据
int i = sc.nextInt();
// 建立空数组,如输入数据数组中不存在,则输出-1
int index = -1;
// 循环遍历数组
for(int x = 0;x<arr.length;x++){
// 判断输入数据是否为数组中的数据
if(arr[x] == i ){
// 是,改变初始索引
index = x;
// 跳出循环
break;
}
}
// 输出结果
System.out.println(index);
}
}
六、反转
需求:已知一个数组,用程序实现将其数组中元素进行倒置。
public class Demo9 {
public static void main(String[] args) {
// 定义数组
int[] arr = {12,1423,456,8670,1323,675,346};
// 循环遍历数组,start为数组第一个数据,end为数组最后一个数据
for(int start = 0,end = arr.length-1;start<=end;start++,end--){
// 建立temp用于暂时存放start中数据
int temp = arr[start];
// 将end中数据传给数组start
arr[start] = arr[end];
// 将temp中暂缓数据交于end中
arr[end] = temp;
}
// 调用方法
printArray(arr);
}
public static void printArray(int[] arr){
System.out.print('[');
// 循环遍历数组
for(int x = 0;x<arr.length;x++){
// 如果为数组最后一位,只写数据
if(x==arr.length-1){
System.out.print(arr[x]);
}else{
// 否则写入数据,并加,分割
System.out.print(arr[x] + ", ");
}
}
System.out.print(']');
}
}
// 结果:
[346, 675, 1323, 8670, 456, 1423, 12]