目录
1 减肥计划
2 逢七过
3 不死神兔
4 百钱白鸡
5 数组元素求和
6 数组内容相同
7 查找
8 反转
9 评委打分
通过键盘录入的方式输入星期数(1-7的整数),显示今天的减肥活动,使用switch和if两种判断语句分别完成。(可写成2个方法)
周一:跑步
周二:游泳
周三:慢走
周四:动感单车
周五:拳击
周六:爬山
周日:好好吃一顿
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入星期数(1-7的整数):");
int n = sc.nextInt(); //输入的星期数
int c = activity2(n); //调用方法,显示今天的减肥活动
}
public static int activity(int n){ //if方法进行判断
if(n < 1 || n > 7){
System.out.println("请输入正确的星期数!");
}else if(n == 1){
System.out.println("跑步");
}else if(n == 2){
System.out.println("游泳");
}else if(n == 3){
System.out.println("慢走");
}else if(n == 4){
System.out.println("动感单车");
}else if(n == 5){
System.out.println("拳击");
}else if(n == 6){
System.out.println("爬山");
}else{
System.out.println("好好吃一顿");
}
return n;
}
public static int activity2(int n){ //switch方法
switch (n){
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("请输入正确的星期数");
}
return n;
}
朋友聚会的时候可能会玩一个游戏:逢七过。
规则是:从任意一个数字开始报数,当你要报的数字包含7或者是7的倍数时都要说:过。
为了帮助大家更好的玩这个游戏,这里我们直接在控制台打印出1-100之间的满足逢七必过规则 的数据。
这样,大家将来在玩游戏的时候,就知道哪些数据要说:过。
public static void main(String[] args) {
for(int i = 1; i <= 100; i++){ //遍历1-100
if(i%7 == 0 || i%10 == 7 || i/10%10 ==7){ //包含7或者是7的倍数时(也就是说,个位有7,十位有7,以及是7的倍数时,喊过)
System.out.println(i);
}
}
}
有一个很有名的数学逻辑题叫做不死神兔问题。有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少?
public static void main(String[] args) {
int[] a = new int[20];
a[0] = 1; //第一个月为1对
a[1] = 1; //第二个月为1对
for(int i = 2; i
我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。
百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
public static void main(String[] args) {
int x; //鸡翁的只数
int y; //鸡母的只数
int z; //鸡雏的只数
for( x = 0; x <= 20; x++){ //鸡翁的只数,一百文最多买20只
for(y = 0; y <= 33; y++){ //鸡母的只数,一百文最多买33只
z = 100-x-y; //鸡雏的只数,是一百只鸡减去鸡翁和鸡母
if(z%3 == 0 && x*5 + y*3 +z/3 == 100){ //要同时满足,鸡雏的个数是3的倍数,以及三种鸡所购买的钱相加为100
System.out.println(x + " " + y + " " + z);
}
}
}
}
有这样的一个数组,元素是{68,27,95,88,171,996,51,210}。求出该数组中满足要求的元素和,
要求是:求和的元素个位和十位都不能是7,并且只能是偶数。
public static void main(String[] args) {
int[] a = {68,27,95,88,171,996,51,210};
int sum = 0;
for(int i = 0; i < a.length; i++){
if(a[i]%10 != 7 && a[i]/10%10 != 7 && a[i]%2 == 0){ //元素个位和十位都不能是7(个:a[i]%10, 十:a[i]/10%10)
System.out.println(a[i]);
sum += a[i];
}
}
System.out.println("元素和为:" + sum);
}
设计一个方法,用于比较两个数组的内容是否相同。
public static void main(String[] args) {
int[] a = {1,2,3,4,5};
int[] b = {1,2,3,4,5};
boolean flag = equals(a,b); //调用方法
System.out.println(flag);
}
public static boolean equals(int[] a, int[] b){ //判断是否相等,选用boolean作为返回值,两个数组作为参数
if(a.length != b.length){ //判断长度是否一致
return false;
}
for(int i = 0; i < a.length; i++){ //前面以及判断长度,故程序运行到这里,两个数组的长度是相同的,所以任意取一长度
if (a[i] != b[i]){ //判断相对应的值是否相等,不等返回false
return false;
}
}
return true; //返回true
}
已知一个数组 arr = {19, 28, 37, 46, 50}; 键盘录入一个数据。定义一个方法,完成查找该数据在数组中的索引,并在控制台输出找到的索引值。
public static void main(String[] args) {
int[] arr = {19, 28, 37, 46, 50};;
Scanner sc = new Scanner(System.in);
System.out.println("请输入需要查找的值:");
int n = sc.nextInt();
int index = getIndex(arr,n);
System.out.println(index);
}
public static int getIndex(int[] a, int n){
int index = -1; //初始化一个下标变量
for(int i = 0; i < a.length; i++){ //遍历数组
if(a[i] == n){ //判断,如果数组有,就把下标值赋值给index
index = i;
break; //找到后就结束循环
}
}
return index; //返回index
}
已知一个数组 arr = {19, 28, 37, 46, 50}; 用程序实现把数组中的元素值反转(在原数组中操作,不能定义第二个数组),反转后的数组 arr = {50, 46, 37, 28, 19}; 并在控制台输出反转后的数组元素。
public static void main(String[] args) {
int[] arr = {19, 28, 37, 46, 50};
System.out.println("反转前");
System.out.println(Arrays.toString(arr));
reversal(arr);
System.out.println("反转后");
System.out.println(Arrays.toString(arr));
}
public static void reversal(int[] arr){
for(int start = 0, end = arr.length-1; start <= end; start++,end--){ //最后一个和第一个交换,倒数第二个和第二个交换,指导start<=end
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
}
}
在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。
选手的最后得分为:去掉一个最高分和一个最低分后 的4个评委平均值 (不考虑小数部分)。
public static void main(String[] args) {
int[] a = new int[6];
Scanner sc = new Scanner(System.in);
for(int i = 0; i < a.length; i++){
System.out.println("请输入第" + (i+1) + "位评委所打成绩:");
a[i] = sc.nextInt();
}
System.out.println(Arrays.toString(a));
int max = getMax(a);
int min = getMin(a);
int sum = getSum(a);
int avg = (sum - max - min)/(a.length-2);
System.out.println("平均分为:" + avg);
}
public static int getMax(int[] a){ //获取最大值
int max = a[0];
for (int i = 0; i < a.length; i++) {
if(max < a[i]){
max = a[i];
}
}
return max;
}
public static int getMin(int[] a){ //获取最小值
int min = a[0];
for (int i = 0; i < a.length; i++) {
if(min > a[i]){
min = a[i];
}
}
return min;
}
public static int getSum(int[] a){ //获取元素和
int sum = 0;
for (int i = 0; i < a.length; i++) {
sum += a[i];
}
return sum;
}