java学习第二周

    科技2022-07-12  115

    学习目标:

    掌握 Java 入门知识


    学习内容:

    1、 掌握动态数组相关内容 2、 掌握方法的调用以及方法的参数传递 3、 掌握break、continue、return关键字的用法 4、 掌握流程控制相关内容


    学习时间:

    1、 周一至周五早上8:30—晚上9:00 2、 周六、周日自行安排


    相关代码:

    package Day07; /** * @Author: xuzhen * @Date: 2020/9/28 18:14 * @Description: * 一组序列 1 ,1, 2,3, 5 , 8... n, 第12个数 为多少? */ public class Work1 { public static int one(int n){ if (n==1 || n==2){ return 1; } return one(n-1)+one(n-2); } public static void main(String[] args) { int s=one(12); System.out.println(s); } } package Day07; /** * @Author: xuzhen * @Date: 2020/9/28 18:36 * @Description: * 前5个阶乘之和 例如 5!+4!+3!+...1! */ public class Work2 { public static void main(String[] args) { int s=5; int sum=0; for (int i=1;i<=s;i++){ int m1=m(i); sum+=m1; } System.out.println("前5个数的阶乘之和是"+sum); } public static int m(int i){ if (i==1){ return 1; } int n=i*m(i-1); return n; } } package Day07; import java.util.Scanner; /** * @Author: xuzhen * @Date: 2020/9/28 18:45 * @Description: * 定义一个函数,函数有一个整型参数n, * 如果参数n为偶数时,调用函数求1/2+1/4+...+1/n, * 如果参数n为奇数时,调用函数1/1+1/3+...+1/n */ public class Work4 { public static double m(int n){ if (n==0 || n==-1){ return 0; } double sum=1.0/n+m(n-2); return sum; } public static void main(String[] args) { Scanner sc=new Scanner(System.in); int s=sc.nextInt(); double sum=m(s); System.out.println(sum); } } package Day07; /** * @Author: xuzhen * @Date: 2020/9/28 18:46 * @Description: */ public class Work5 { /2 + 2/3 + 3/5 + 5/8.。。。前8个数之和。 * 规律: 分子和分母的关系 * 分子: 前一个数的分母 * 分母: 前一个数的分子 + 前一个数的分母 * 步骤1 : 先求出 第n 个数是多少 分子/分母 * 步骤2: 在求前n个数之和 = 前n-1个数的和 + 第n个数 * n=1 1/1 * n=2 1/2 * n=3 2/3 * n=4 3/5 * n=5 5/8 f(5)/f(6) */ public static double sum(int n){ if(n==1){ return 1.0/1; } return sum(n-1)+getNum(n); } public static double getNum(int n ){ if(n==1){ return 1.0/1; } if(n==2){ return 1.0/2; } return f(n)*1.0/f(n+1); } /** * 斐波拉契序列 * @param n * @return */ public static int f(int n){ if(n==1){ return 1; } if(n==2){ return 1; } return f(n-1)+f(n-2); } public static void main(String[] args) { System.out.println(sum(8)); } } package Day08; import java.util.Arrays; /** * @Author: xuzhen * @Date: 2020/9/29 18:43 * @Description: * 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 * 如有数组{23,25,36, 67,77,79,89},然后有数组50来插入在数组中组成一个新的数组 */ public class Work2 { public static void main(String[] args) { int [] arr={23,25,36,67,77,79,89}; int [] arr2 = new int[arr.length+1]; for(int i=0;i<=arr.length;i++){ if (i<3){ arr2[i]=arr[i]; }else if (i==3){ arr2[i]=50; }else{ arr2[i]=arr[i-1]; } } System.out.println(Arrays.toString(arr2)); } } package Day08; import java.util.Arrays; /** * @Author: xuzhen * @Date: 2020/9/29 19:07 * @Description: * 有数组{12,5,87,97,1,45,71,112,50,80},将数组的前一半保存到新数组a中,将 * 后一半保存到新数组b中。 */ public class Work4 { public static void main(String[] args) { int[] arr={12,5,87,97,1,45,71,112,50,80}; int[] a=new int[arr.length/2]; int[] b=new int[arr.length/2]; int c=0; for (int i=0;i<arr.length;i++){ if (i<arr.length/2){ a[i]=arr[i]; }else{ b[c]=arr[i]; c++; } } System.out.println(Arrays.toString(a)); System.out.println(Arrays.toString(b)); } } package Day08; import java.util.Arrays; /** * @Author: xuzhen * @Date: 2020/9/30 9:06 * @Description: 100个人围成一圈,假设某个人是第一个人, * 从他开始报数1、2、3,只要报3的人就出去, * 问最后剩下一个人,这个人最开始的位置。 */ public class Work10 { public static void main(String[] args) { int[] a = new int[100]; int jishu = 0; int all = 100; int tuichu = 0; for (int i = 0; i < all; i++) { a[i] = i + 1; } int n = 0; while (all - tuichu > 1) { if (a[n] != 0) { jishu++; } if (jishu == 3) { a[n] = 0; jishu = 0; tuichu++; } if (n == all - 1) { n = -1; } n++; } for (n = 0; n < a.length; n++) { if (a[n] != 0) { System.out.println(a[n]); } // int x, all = 100, i = 0, count = 0, exit = 0; //i 循环变量,count 计数,exit退出队列人数 // int[] arr = new int[100]; // for (x = 0; x < all; x++) { //为n个人编号(从1开始编号) // arr[x] = x + 1;//给数组赋值 // } // // while (all - exit > 1) {//总人数 - 退出的人数(当前的人数)> 1时进行报数 // if (arr[i] != 0) {//编号未退出(编号==0 退出); // count++; // } // // if (count == 3) { // arr[i] = 0;// 当前的编号退出,编号置0 // count = 0; // exit++; // } // // if (i == all - 1) {//作用是让当报数到最后一个人时,将下标赋值-1,这样下次的i自增就是0, // //到达了从又从头开始的目的 // i = -1; // } // // i++; // } // // for (i = 0; i < all; i++) { // if (arr[i] != 0) { // System.out.println("留下人编号==== " + arr[i]); // } } } }

    学习感想:

    时间过得很快,转眼间已经过了两周了,期间虽然遇到了国庆假期,但也是学习到了很多新的知识,没什么好说的,继续努力,一点点的提升自己。
    Processed: 0.013, SQL: 8