牛客习题总结5

在这里插入图片描述
StringBuffer类型的赋值是不会改变原来的值得。
在这里插入图片描述
在这里插入图片描述
在Java中,默认在使用一个变量的时候必须赋予它初值
在这里插入图片描述

通俗的讲,就是基本数据类型和包装类之间的转换。如: int 类型和 Integer 类的转换
基本数据类型转化成包装类是装箱 (如: int --> Integer)。
包装类转化成基本数据类型就是拆箱 (如:Integer --> int)。
包装类就是引用类型,基本数据类型就是值类型。所以选C

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) {
            int kinds = in.nextInt();
            int[] arr = new int[kinds];
            for (int i = 0; i < kinds; i++) {
                arr[i] = in.nextInt();
            }
            System.out.println(differentkinds(arr, kinds, 40,0));
        }
    }

    static int differentkinds(int[] arr, int n, int v,int index) {
        if (v == 0) {
            return 1;
        }
        if (n == 0) {
            return 0;
        }else {
            //从后往前装,最后一个开始,装上n个后,体积减少,继续往前
            //装上n个后,如果无解。删除该包。然后从n-1开始继续往前装
            return differentkinds(arr,n-1,v-arr[index],index+1)
                    +differentkinds(arr,n-1,v,index+1);
        }
    }
}

将输入的值都存放在数组里,创建一个方法去用递归来计算有几种选择方式,当体积刚好用完说明找到一种方法返回1,如果一直到n为0,说明没找到,重新开始找。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章