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,說明沒找到,重新開始找。