1减肥计划:
星期一:跑步;
星期二:游泳;
星期三:慢走;
星期四:动感单车
星期五:拳击
;星期六:爬山;
星期日:好好吃一顿.
import java.util.Scanner;
/*
减肥计划:
星期一:跑步;星期二: 游泳;星期三:慢走;星期四:动感单车
星期五:拳击;星期六:爬山;星期日:好好吃一顿.
* */
public class lianxi_01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入星期数");
int i = sc.nextInt();
printWeek(i);
}
public static void printWeek(int i){
if(i<1||i>7){
System.out.println("你输入的星期数有误");
}else if(i==1){
System.out.println("跑步");
}else if(i==2){
System.out.println("游泳");
}else if(i==3){
System.out.println("漫步");
}else if(i==4){
System.out.println("动感单车");
}else if(i==5){
System.out.println("拳击");
}else if(i==6){
System.out.println("爬山");
}else{
System.out.println("好好吃一顿");
}
}
}
第二种方法:
import java.util.Scanner;
/*
减肥计划:
星期一:跑步;星期二: 游泳;星期三:慢走;星期四:动感单车
星期五:拳击;星期六:爬山;星期日:好好吃一顿.
* */
public class lianxi_02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的星期数");
int i = sc.nextInt();
printWeek(i);
}
public static void printWeek(int i){
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("你输入的星期数有误");
break;
}
}
}
2逢七过:
需求:
朋友聚会的时候可能会玩一个游戏:逢七过
规则是:从任意一个数字开始报数,当你要报的数字包含7或者是7的倍数的时候都要说:过.
这样,大家将来在玩游戏的时候,就知道哪些数据要说:过.
public class lianxi_03 {
public static void main(String[] args) {
sevebGuo();
}
public static void sevebGuo(){
for (int i = 1; i <=100 ; i++) {
if(i%10==7||i/10==7||i%7==0){
System.out.println("过");
}else{
System.out.print(i+" ");
}
}
}
}
3百钱百鸡
需求:
我国古代数学张邱健在<算经>一书中提到的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一.
百钱百鸡,问鸡翁,鸡母,鸡雏各几何?
思路:
1.第一层循环,用于表示鸡翁的范围,初始化表达式的变量定义为 x = 0,判断条件是 x<=20
2.第2层循环,用于表示鸡母的范围,初始化表达式的变量定义为 y = 0,判断条件是y<=33
3.这个时候,用于表示鸡雏的变量z = 100-x-y
4.判断表达式 z%3 0和表达式5x+3y+z/3100是否同时成立,如果成立,输出对应的x,y,z的值,就是对应的鸡翁,鸡母,鸡雏的值
public class lianxi_04 {
public static void main(String[] args) {
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);
}
}
}
}
}
4
需求:
定义一个数组求,求数组内符合要求的元素的和.
个位数和十位数不能有7,而且是偶数
/*
需求:
定义一个数组求,求数组内符合要求的元素的和.
个位数和十位数不能有7,而且是偶数
* */
public class lianxi_05 {
public static void main(String[] args) {
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){
System.out.println("满足条件的元素:"+arr[i]);
sum+=arr[i];
}
}
System.out.println("sum :"+sum);
}
}
5
判断两个数组内的元素是否相同:
分析:
1.数组相同第一点肯定要长度相同;
2.数组只要其元素相同就说明相同,所以判断第一个数组的元素和第二个素组的元素是否相等就可以了。
3.我这里如果相等就返回true,否者返回false;
public class lianxi_06 {
public static void main(String[] args) {
int [] arr = {1,2,3,2};
int [] arr1 = {2,2,3,1};
boolean arr2 = Arr(arr, arr1);
System.out.println(arr2);
}
//判断连个数组内的元素是否相等的方法。
public static boolean Arr(int[] arr,int[] arr1){
//int sum = 0;
if(arr.length!=arr1.length){
return false;
}
//判断第一个数组在第二个数组内有没有相等的元素,没有就返回false
for (int i = 0; i < arr.length; i++) {
//用于两个数组内有相等的元素时计数用的
int sum = 0;
for (int i1 = 0; i1 < arr1.length; i1++) {
if(arr[i]==arr1[i1]){
sum++;
}
}
if(sum==0){
return false;
}
}
//判断第二个数组内的元素是否与第一个数组内的元素有相同的元素,如果没有就返回false
for (int i1 = 0; i1 < arr.length; i1++) {
//用于两个数组内有相等的元素时计数用的
int sum1 = 0;
for (int i = 0; i < arr1.length; i++) {
if(arr[i]==arr1[i1]){
sum1++;
}
}
if(sum1==0){
return false;
}
}
return true;
}
}
6数组翻转
需求:
1.吧数组内的元素对调,
例如:int [ ] arr = {1,2,7,9,10,5}翻转后
int [ ] arr = {5,10,9,7,2,1}
注意:虽然翻转与数组反着输出的结果是一样的但是方法是不一样的,
/*
数组的翻转
* */
public class lianxi_08 {
public static void main(String[] args) {
int [] arr = {1,2,3,4,5,6,7,8};
Arr(arr);
ergodicArr(arr);
}
//创建一个翻转的方法
public static void Arr(int [] arr){
int hezi = 0;
//数组的一半就可以当做循环次数,再利用一个盒子用于翻转用
for (int i = 0; i <arr.length/2 ; i++) {
hezi = arr[i];
arr[i] = arr[arr.length-1-i];
arr[arr.length-1-i] = hezi;
}
}
//遍历数组的方法
public static void ergodicArr(int [] arr){
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
if(i==arr.length-1){
System.out.print(arr[i]);
}else{
System.out.print(arr[i]+",");
}
}
System.out.println("]");
}
}
7 评委打分
需求:
6个评委打分,去掉6个评委中最小值和最大值,然后剩下的取平均值
把评委打的分数放到一个数组里.
分析:
1.先创建一个求数组中的最大值方法.
2.创建一个求数组中最小值的方法.
3.创建一个求数组的和的方法.
4.然后在主方法中录入分数并求出平均值.
public class lianxi_09 {
public static void main(String[] args) {
int [] arr = new int[6];
Scanner sc = new Scanner(System.in);
for (int i = 0; i <arr.length ; i++) {
System.out.println("输入第"+(i+1)+"评委的分数");
arr[i] = sc.nextInt();
}
//导出最大值
int i = maxArr(arr);
//导出最小值
int i1 = minArr(arr);
//导出所有分数的和
int i2 = sumArr(arr);
int a = (i2-i-1)/(arr.length-2);
System.out.print("平均值是:"+a);
}
//1.先创建一个求数组中的最大值方法.
public static int maxArr(int [] arr){
int max = 0;
for (int i = 0; i < arr.length; i++) {
if(max<arr[i]){
max = arr[i];
}
}
return max;
}
//2.创建一个求数组中最小值的方法.
public static int minArr(int [] arr){
int min = 0;
for (int i = 0; i < arr.length; i++) {
if(min<arr[i]){
min = arr[i];
}
}
return min;
}
// 3.创建一个求数组的和的方法.
public static int sumArr(int [] arr){
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum+=arr[i];
}
return sum;
}
}
8不死神兔
有一只兔子,从出生后第3个月起每个月都生只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?
前十二个月的兔子数量:
分析:从第一个兔子开始,第1个月1只兔子,由于“长到第三个月后每个月又生一只兔子”,所以第2个月也是1只兔子,第3个月时可以生一只兔子,
所以总数为2只,这时,其中有一只是以后每个月都可以生一只兔子的老兔子,另一只是一只新兔子,它只有在第三个月的时候才可以每个月生一只兔子;
这样的话,第4个月的兔子总数为3只,…以此类推,从第1个月到第12个月的兔子总数分别为:1,1,2,3,5,8,13,21,34,55,89,144
/*
* 不死神兔
* 有一只兔子,从出生后第3个月起每个月都生只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?
前十二个月的兔子数量:
分析:从第一个兔子开始,第1个月1只兔子,由于“长到第三个月后每个月又生一只兔子”,所以第2个月也是1只兔子,第3个月时可以生一只兔子,
所以总数为2只,这时,其中有一只是以后每个月都可以生一只兔子的老兔子,另一只是一只新兔子,它只有在第三个月的时候才可以每个月生一只兔子;
这样的话,第4个月的兔子总数为3只,…以此类推,从第1个月到第12个月的兔子总数分别为:1,1,2,3,5,8,13,21,34,55,89,144
*/
public class GodRabbit {
public static void main(String[] args) {
int i1 = twentyRabbit(20);
System.out.println(i1);
}
public static int twentyRabbit(int j){
int [] arr = new int[j];
arr[0] = 1;
arr[1] = 1;
for (int i = 2; i < arr.length; i++) {
arr[i] = arr[i-1]+arr[i-2];
}
return arr[j-1];
}
}