java的第六天

复习回顾

1、方法的定义格式?
    public static 数据类型 方法名(参数列表){
        方法体;
        return 数据值/变量;
    }

2return关键字的作用?
	结束方法的调用, 并且返回方法的计算结果
	
3、有返回值方法的调用方式?无返回值方法调用方式?
	无返回值方法调用方式 
		定义:public static void sum(){}
		调用:sum();

	有返回值方法的调用方式
        public static int sum(int a, int b ){
            return a+b;
        }
		调用:
			直接调用 sum(10,20);  //丢失返回值 (一般情况下不用)
			输出调用 System.out.println( sum(10,20)  );
			赋值调用 int sum = sum(20,30);

4、方法参数为基本数据类型时的参数传递方式?
	值传递,形参的改变不影响实参

5、方法参数为引用数据类型时的参数传递方式?
	地址传递, 形参的改变直接影响实参.
	
6、方法重载的条件?
	同一个类中, 方法名相同, 参数列表不同(参数类型或者个数不同)

7、方法定义的两个明确?
	明确返回值(有无返回值,无返回值时void)
	明确参数(参数类型和个数)

1 Debug模式

什么是Debug模式?

debug是供程序员使用的程序调试工具,可以用于查看程序的执行流程,也可以用于追踪程序执行过程。

更多的时候是因为程序出问题了,所以使用Debug工具进行调试,找到程序出错的原因和位置。

1.1 Debug常用按钮介绍

[外链图片转存失败(img-mNNegnfJ-1563073290154)(assets/1560786161974.png)]

1.2 Debug工具使用
  • 如何加断点

    选择要设置断点的代码行,在行号的区域后面单击鼠标左键即可。

    注意:不要在注释上打断点,因为注释是不会被程序执行的。

    [外链图片转存失败(img-QibY6J9I-1563073290155)(assets/01.png)]

  • 如何运行加了断点的程序

    在代码区域右键Debug执行

    [外链图片转存失败(img-iRjERa5E-1563073290156)(assets/02.png)]

  • 看哪里

    看Debugger窗口

    [外链图片转存失败(img-GsaY3TIO-1563073290158)(assets/1560784809626.png)]

  • 点哪里

    Step Into:点击Step Into,或者按F7,表示步入代码,遇到当前行代码是方法调用时,直接进入方法内。

    Step Over:点击Step Over,或者按F8,表示步过代码,代码一行一行走,遇到方法调用,直接一行过。

    [外链图片转存失败(img-0dpd67ov-1563073290162)(assets/1560786793935.png)]

  • 如何删除断点

    选择要删除的断点,单击鼠标左键即可

    [外链图片转存失败(img-rm65qiEM-1563073290163)(assets/1560787206141.png)]

    如果是多个断点,可以每一个再点击一次。也可以一次性全部删除

    [外链图片转存失败(img-yfNv1kLU-1563073290164)(assets/1560787558942.png)]

查看方法文档注释:Ctrl + Q

2 基础练习

2.1 减肥计划if版本

需求:

​ 输入星期数,显示今天的减肥活动
​ 周一:跑步
​ 周二:游泳
​ 周三:慢走
​ 周四:动感单车
​ 周五:拳击
​ 周六:爬山
​ 周日:好好吃一顿

代码实现:

/*
    思路:
        1:键盘录入一个星期数,用一个变量接收
        2:对星期数进行判断,这里用 if 语句实现
        3:在对应的语句控制中输出对应的减肥活动
 */
public class Test01 {
    public static void main(String[] args) {
        //键盘录入一个星期数,用一个变量接收
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入一个星期数:");
        int week = sc.nextInt();

        //对星期数进行判断,这里用 if 语句实现
        if (week == 1) {
            System.out.println("跑步");
        } else if (week == 2) {
            System.out.println("游泳");
        } else if (week == 3) {
            System.out.println("慢走");
        } else if (week == 4) {
            System.out.println("动感单车");
        } else if (week == 5) {
            System.out.println("拳击");
        } else if (week == 6) {
            System.out.println("爬山");
        } else if (week == 7) {
            System.out.println("好好吃一顿");
        }else {
            System.out.println("你输入的星期数有误");
        }
    }
}
2.2 减肥计划switch版本

需求:

​ 输入星期数,显示今天的减肥活动
​ 周一:跑步
​ 周二:游泳
​ 周三:慢走
​ 周四:动感单车
​ 周五:拳击
​ 周六:爬山
​ 周日:好好吃一顿

代码实现:

/*
    思路:
        1:键盘录入一个星期数,用一个变量接收
        2:对星期数进行判断,这里用 switch 语句实现
        3:在对应的语句控制中输出对应的减肥活动

    导包:
        1:手动导包  import java.util.Scanner;
        2:快捷键导包 Alt+Enter
        3:自动导包
 */
public class Test02 {
    public static void main(String[] args) {
        //键盘录入一个星期数,用一个变量接收
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入一个星期数:");
        int week = sc.nextInt();

        //对星期数进行判断,这里用 switch 语句实现
        switch (week) {
            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("你输入的星期数有误");
        }
    }
}
2.3 逢七打印

需求:

​ 打印1~100之间数字包含7或能被7整除的数字

步骤:

1、遍历1~100之间的每一个整数

for(int i=1; i<=100;++)

2、获取每个数的个位和十位

ge = i%10

shi=i/10%10

3、判断并打印包含7或者能被7整除的数

代码实现:

/*
    思路:
        1:数据在1-100之间,用for循环实现数据的获取
        2:根据规则,用if语句实现数据的判断:要么个位是7,要么十位是7,要么能够被7整除
        3:在控制台输出满足规则的数据
 */
public class Test03 {
    
    public static void main(String[] args) {
        
        //数据在1-100之间,用for循环实现数据的获取
        for(int i=1; i<=100; i++) {
            //个位
            int ge = i%10;
            //十位
            int shi = i/10%10;
            
            //根据规则,用if语句实现数据的判断:要么个位是7,要么十位是7,要么能够被7整除
            if(ge==7 || shi==7 || i%7==0) {
                //在控制台输出满足规则的数据
                System.out.println(i);
            }
        }
    }
}
2.4 数组元素求和

需求:

​ 有这样的一个数组,元素是{68,27,95,88,171,996,51,210},求出该数组中满足要求的元素和。
​ 要求是:求和的元素个位和十位都不能是7,并且只能是偶数。

步骤:

1. 遍历数组
2. 获取每个元素的个位和十位 ,都不能为7 ,并且该元素只能是偶数
3. 定义求和变量,对满足条件的元素累加求和

代码实现:

/*
   思路:
        1:静态初始化数组
        2:定义一个求和变量,初始值是0
        3:遍历数组,获取到数组中的每一个元素
        4:判断该元素是否满足条件,如果满足条件就累加
        5:输出求和变量的值
 */
public class Test04 {
    public static void main(String[] args) {
        //静态初始化数组
        int[] arr = {68, 27, 95, 88, 171, 996, 51, 210};

        //定义一个求和变量,初始值是0
        int sum = 0;

        //遍历数组,获取到数组中的每一个元素
        for(int i=0; i<arr.length; i++) {
            
            //获取每个元素的个位
            int ge = arr[i]%10;
            int shi = arr[i]/10%10;
            
            //判断该元素是否满足条件
            if(ge!=7 && shi!=7 && arr[i]%2==0) {
                 System.out.println(arr[i]);
                //如果满足条件就累加
                sum += arr[i];
            }
        }

        //输出求和变量的值
        System.out.println("sum:" + sum);
    }
}
2.5 判断两个数组是否相同

需求:

​ 判断两个数组内容是否相同,如果两个数组长度一样,对应位置上的元素值也一样,则两个数组相同。

​ 比如:

​ {10,20,30}和{10,20,30}是两个相同的数组。

​ {10,20,30}和{20,10,30}不是两个相同是数组。

代码实现:

/*
    思路:
        1:定义两个数组,分别使用静态初始化完成数组元素的初始化
        2:定义一个方法,用于比较两个数组的内容是否相同
        3:比较两个数组的内容是否相同,按照下面的步骤实现就可以了
            首先比较数组长度,如果长度不相同,数组内容肯定不相同,返回false
            其次遍历,比较两个数组中的每一个元素,只要有元素不相同,返回false
            最后循环遍历结束后,返回true
        4:调用方法,用变量接收
        5:输出结果
 */
public class Test05 {
    public static void main(String[] args) {
        //分别静态初始化两个数组
        int[] arr = {11, 22, 33, 44, 55};
        //int[] arr2 = {11, 22, 33, 44, 55};
        int[] arr2 = {11, 22, 33, 44, 5};

        //调用方法,传递要判断的两个数组,并接收方法返回的结果
        boolean flag = compare(arr,arr2);
        
        //输出结果
        System.out.println(flag);
    }

    //定义一个方法,用于比较两个数组的内容是否相同
    /*
        两个明确:
            返回值类型:boolean
            参数:int[] arr, int[] arr2
     */
    public static boolean compare(int[] arr, int[] arr2) {
        
        // 1. 首先比较数组长度,如果长度不相同,直接返回false。
        if(arr.length != arr2.length) {
            return false;
        }

        // 2. 其次遍历,比较两个数组中的每一个元素,只要有元素不相同,直接返回false。
        for(int i=0; i<arr.length; i++) {
            if(arr[i] != arr2[i]) {
                return false;
            }
        }

        // 3. 程序如果能走到这里,说明两个数组长度一样,对应位置的元素也都相同,返回true
        return true;
    }
}
2.6 查找数组中元素位置

需求:

​ 已知一个数组 {19, 28, 37, 46, 50}

键盘录入一个数据,查找该数据在数组中的索引,并在控制台输出该索引值。

​ 如果数组没有该元素,则返回-1。

代码实现:

/*
    思路:
        1. 静态初始化一个数组
        2. 键盘录入要查找的数据,用一个变量接收
        3. 遍历数组,获取到数组中的每一个元素
        4. 拿键盘录入的数据和数组中的每一个元素进行比较,如果值相同,直接返回该元素索引,方法结束。
        5. 如果遍历结束,方法还没返回,说明数组中没有该元素,直接返回-1即可。
 */
public class Test06 {
    public static void main(String[] args) {
        // 1. 静态初始化一个数组
        int[] arr = {19, 28, 37, 46, 50};

        // 2. 键盘录入要查找的数据,用一个变量接收
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要查找的数据:");
        int number = sc.nextInt();

        // 3. 调用方法
        int index = getIndex(arr, number);

        // 4. 输出索引变量
        System.out.println("index: " + index);
    }

   
    /*
        需求:
        	 查找指定的数据在数组中的索引
        	 
        两个明确:
            返回值类型:int
            参数:int[] arr, int number
     */
    public static int getIndex(int[] arr, int number) {
		//int index = -1;
        // 1. 遍历数组,获取到数组中的每一个元素
        for(int i=0; i<arr.length; i++) {
            // 2. 参数传入的数number和数组每一个元素分别比较
            if(number == arr[i]) {
                // 3. 如果找到了相等的元素,直接返回索引
                return i;
                //index = i;
                //break;
            }
        }

        // 4. 如果方法能走到这里,说明数组中没有该元素,直接返回-1即可。
        return -1;
    }
}
2.7 数组元素反转

需求:

​ 将数组中的元素颠倒顺序,例如原始数组为1,2,3,4,5,反转后的数组为5,4,3,2,1。

​ 已知一个数组 {19, 28, 37, 46, 50}, 用程序实现数组反转,并打印反转后的数组元素。

​ 反转后数组应变为 {50, 46, 37, 28, 19}。

实现思路:

实现反转,需要将数组第一个元素和最后一个元素互换,第二个元素和倒数第二个交换,以此类推。

  • 定义两个变量,保存数组的最小索引和最大索引。
  • 两个索引上的元素交换位置。
  • 最小索引++,最大索引–,再次交换位置。
  • 最小索引超过了最大索引,数组反转操作结束。

如何实现两个数互换?

​ 实现两个数互换,可以采用临时变量。例如:

int a = 10;
int b = 20;

//交换a和b的值
int temp = a; //定义临时变量存a的值
a = b ; //将b的值赋给a
b = temp;  //将temp的值赋给b

原理图解:

[外链图片转存失败(img-ixnNdK03-1563073290166)(assets/1560809305691.png)]

代码实现:


public class Test07 {
    public static void main(String[] args) {
        //静态初始化数组
        int[] arr = {19, 28, 37, 46, 50};

        //调用反转的方法,方法执行完,数组就完成了反转。
        reverse(arr);

        //遍历数组
        printArray(arr);
    }

    /*
    	定义方法,实现数组元素反转
        两个明确:
            返回值类型:void
            参数:int[] arr
     */
    public static void reverse(int[] arr) {
        
        // 初始化变量记录小索引: start = 0
        // 初始化变量记录大索引: end = arr.length ‐ 1
        // 循环执行条件: start < end 才需要交换位置
        
        for (int start = 0, end = arr.length - 1; start < end; start++, end--) {
            //变量交换
            int temp=arr[start];
            arr[start]=arr[end];
            arr[end]=temp;
        }
    }

    /*
    	定义方法,格式化打印数组
    	数组{1,2,3,4},格式化结果:[1, 2, 3, 4]
        两个明确:
            返回值类型:void
            参数:int[] arr
     */
    
    //格式化打印
    // String str = Arrays.toString(数组);
    // System.out.println(str);
    
    public static void printArray(int[] arr) {
        
        if(arr==null || arr.length==0){
            System.out.print("[]");
            return;
        }
        
        System.out.print("["+arr[0]);
        for (int i = 1; i < arr.length; i++) {
            System.out.print(", " + arr[i]);
        }
        System.out.println("]");
    }
}
2.8 评委打分

需求:

​ 在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。
​ 选手的最后得分为:去掉一个最高分和一个最低分后的4个评委平均分 (不考虑小数部分)。

步骤:

​ 1 录入6个成绩,循环放到数组中

​ 2 定义方法求数组最大值并返回

​ 3 定义方法求数组最小值 并返回

​ 4 定义方法对数组累加求和并返回结果

​ 5 求去掉一个最高分和一个最低分后的平均值

代码实现:

/*
    步骤:
        1. 动态初始化长度为6的int数组,用于存储6个评委的打分
        2. 键盘循环录入6个评委的分数
        3. 定义方法获取数组最大值max。(打分的最高分)
        4. 定义方法获取数组最小值min。(打分的最低分)
        5. 定义方法对数组中所有元素累加求和sum。(所有打分的和)
        6. 计算平均分规则:(sum - max - min)/(arr.length-2)
 */
public class Test08 {
    public static void main(String[] args) {
        // 1. 动态初始化长度为6的int数组,用于存储6个评委的打分
        int[] arr = new int[6];

        //创建键盘录入对象
        Scanner sc = new Scanner(System.in);

        // 2. 循环录入6个评委的分数
        for(int i=0; i<arr.length; i++) {
            System.out.println("请输入第" + (i + 1) + "个评委的打分:");
            arr[i] = sc.nextInt();
        }

        //使用Arrays工具类对数组进行格式化打印
         System.out.println( Arrays.toString(arr) );

        // 3. 调用方法获取最大分数
        int max = getMax(arr);

        // 4. 调用方法获取最小分数
        int min = getMin(arr);

        // 5. 调用方法获取评分总和
        int 4 = getSum(arr);

        // 6. 计算平均分规则:(sum - max - min)/4
        int avg = (sum - max - min) / (arr.length - 2);

        //输出平均分
        System.out.println("选手的最终得分是:" + avg);

    }

    /*
    	定义方法对数组中所有元素累加求和。
        两个明确:
            返回值类型:int
            参数:int[] arr
     */
    public static int getSum(int[] arr) {
        int sum = 0;

        for(int x=0; x<arr.length; x++) {
            sum += arr[x];
        }

        return sum;
    }

    /*
        定义方法获取数组最小值。
        两个明确:
            返回值类型:int
            参数:int[] arr
     */
    public static int getMin(int[] arr) {
        //假设第一个元素为最小值
        int min = arr[0];
		//遍历比较每一个元素
        for(int i=1; i<arr.length; i++) {
            if(arr[i] < min) {
                min = arr[i];
            }
        }
		//返回最小值
        return min;
    }

    /*
        定义方法获取数组最大值。
        两个明确:
            返回值类型:int
            参数:int[] arr
     */
    public static int getMax(int[] arr) {
        //假设第一个元素为最大值
        int max = arr[0];
		//遍历比较每一个元素
        for(int i=1; i<arr.length; i++) {
            if(arr[i] > max) {
                max = arr[i];
            }
        }
		//返回最大值
        return max;
    }

2.9 不死神兔

需求:

​ 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
​ 假如兔子都不死,问第二十个月的兔子对数为多少?

代码实现:

/*
 * 需求:
 * 	有一对兔子,从出生后第3月起每个月生一对兔子,小兔子从第3个月开始每个月又生一对兔子,
 * 	假如兔子都不死,第20个月的兔子对数为多少?
 * 
 * 分析:
 * 		第1个月: 1对
 * 		第2个月: 1对
 * 		第3个月: 2对
 * 		第4个月: 3对
 * 		第5个月: 5对
 * 规律:
 *		第3月开始,每月兔子对数等于前两个月的兔子对数相加
 * 实现:
 * 		使用数组索引0~19表示月份1~20,元素值代表兔子数量
 * 
 * 		第1个月: arr[0] = 1
 * 		第2个月: arr[1] = 1
 * 		第3个月: arr[2] = arr[1] + arr[0] =1+1=2
 * 		第4个月: arr[3] = arr[2] + arr[1] =2+1=3
 * 		第5个月: arr[4] = arr[3] + arr[2] =3+2=5
 * 		第6个月: arr[5] = arr[4] + arr[3] =5+3=8 		
 * 		...
 * 		第20个月:arr[19] = arr[18] + arr[17]
 */
public class Test09 {
	public static void main(String[] args) {
		//定义数组,长度20
		int[] arr = new int[20];
		//第一月兔子数
		arr[0] = 1;
		//第2月兔子数
		arr[1] = 1;
		//第3月开始,每月兔子对数等于前两个月的兔子对数相加
		for(int i=2; i<arr.length; i++){
			arr[i] = arr[i-1] + arr[i-2];
		}
		
		//循环结束后,arr[19]为第20个月兔子总对数
		System.out.println("20个月后兔子总对数:" + arr[19]);
	}
}
2.10 百钱买百鸡

需求:

​ 我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。
​ 百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

翻译:

​ 一只公鸡5块钱,一只母鸡3块钱,3只小鸡1块钱,拿100元,如何搭配能买到100只鸡?

思路:

百鸡条件:
    假设公鸡为 int x 只 ,一只公鸡5块钱, 范围在 0~20只
    假设母鸡为 int y 只 ,一只母鸡3块钱, 范围在 0~33只 
    小鸡应该是 int z = 100 - x - y; 并且 z%3==0
		

百钱条件:
	5*x + 3*y + z/3 = 100; 

穷举算法

代码实现:

/*
    思路:
        1. for循环遍历能买到公鸡的所有可能值。
        	for(int x=0; x<=20; x++)
        2. for循环遍历能买到母鸡的所有可能值。
        	for(int y=0; y<=33; y++)
        3. 根据公鸡和母鸡,得到小鸡的数量 int z = 100-x-y;
        4. 如果同时能满足 z%3==0 和 5*x + 3*y + z/3 ==100 ,则x,y,z的搭配就是百钱刚好买百鸡的搭配
 */
public class Test10 {
    public static void main(String[] args) {
        
        // 1. for循环遍历能买到公鸡的所有可能值。
        for(int x=0; x<=20; x++) {
            // 2. for循环遍历能买到母鸡的所有可能值。
            for(int y=0; y<=33; y++) {
                // 3. 根据公鸡和母鸡,得到小鸡的数量 int z = 100-x-y;
                int z = 100 - x - y;

                // 4. 如果同时满足 z%3==0 和 5*x + 3*y + z/3 ==100 ,
                //    则x,y,z的搭配就是百钱刚好买百鸡的搭配
                if(z%3==0 && 5*x+3*y+z/3==100) {
                    System.out.println(x + "," + y + "," + z);
                }
            }
        }
    }
}

(+)统计某个元素在数组中出现的次数。

(+)将数组中第一个元素和最大值元素互换位置。

(+)求 1-500 之内能同时被 3 和 5 整除的所有数及个数并 5 个一行打印。

课后作业

1. 请定义一个方法,该方法可以实现对int类型的数组进行遍历,在控制台打印所有元素。
	实现方法后,请在主方法中调用方法,查看结果。
	例如,数组为{11, 22, 33},打印格式为:[11, 22, 33]
	
    
    
2. 请定义一个方法,该方法可以实现求两个整数之中的较大值,并将较大值返回。
    请以重载的方式再定义一个方法,实现求三个整数之中的最大值,并将最大值返回。
    在主方法中分别调用这两个方法,测试结果。
    
    
3. 请定义一个方法,实现交换整数数组中两个索引上的元素值。并调用方法,查看运行效果。
	例如,数组为{11, 22, 33, 44, 55, 66},交换索引1和索引5位置上的元素,
	结果为{11, 66, 33, 44, 55, 22}


4. 通过键盘录入两个整数n和m。n代表行数,m代表列数,范围都是1-10 。
	定义一个方法,方法的功能是打印n行m列的@符号。执行效果如下:
	请输入行数:
    4
    请输入列数:
    5
    @@@@@
    @@@@@
    @@@@@
    @@@@@
    
    
5. 在主方法中通过键盘录入三个整数。定义一个方法,方法接收三个整数变量,在方法中从大到小依次打印三个变量。
    执行效果如下:
        请输入第一个整数:10
        请输入第二个整数:30
        请输入第三个整数:20
        从大到小的顺序是: 30 20 10 
        
        
6. 数字是有绝对值的,负数的绝对值是它本身取反,非负数的绝对值是它本身。
	请定义一个方法,方法能够得到小数类型数字的绝对值并返回。请定义方法并测试。
	
	
	

,在控制台打印所有元素。
实现方法后,请在主方法中调用方法,查看结果。
例如,数组为{11, 22, 33},打印格式为:[11, 22, 33]


```java
2. 请定义一个方法,该方法可以实现求两个整数之中的较大值,并将较大值返回。
    请以重载的方式再定义一个方法,实现求三个整数之中的最大值,并将最大值返回。
    在主方法中分别调用这两个方法,测试结果。
    
    
3. 请定义一个方法,实现交换整数数组中两个索引上的元素值。并调用方法,查看运行效果。
	例如,数组为{11, 22, 33, 44, 55, 66},交换索引1和索引5位置上的元素,
	结果为{11, 66, 33, 44, 55, 22}


4. 通过键盘录入两个整数n和m。n代表行数,m代表列数,范围都是1-10 。
	定义一个方法,方法的功能是打印n行m列的@符号。执行效果如下:
	请输入行数:
    4
    请输入列数:
    5
    @@@@@
    @@@@@
    @@@@@
    @@@@@
    
    
5. 在主方法中通过键盘录入三个整数。定义一个方法,方法接收三个整数变量,在方法中从大到小依次打印三个变量。
    执行效果如下:
        请输入第一个整数:10
        请输入第二个整数:30
        请输入第三个整数:20
        从大到小的顺序是: 30 20 10 
        
        
6. 数字是有绝对值的,负数的绝对值是它本身取反,非负数的绝对值是它本身。
	请定义一个方法,方法能够得到小数类型数字的绝对值并返回。请定义方法并测试。
	
	
	
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值