두 개의 정수 n과 m를 입력하여 0-n에서 임의로 몇 개의 수를 취하여 m와 같게 하다
1495 단어 데이터 구조와 알고리즘
(2)n 가입, n=n-1, m=m-n을 취하여 귀속한다
import java.util.*;
public class {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
int n = scanner.nextInt();//n
int sum = scanner.nextInt();//m
findSum(sum, n);
System.out.println(res);
//System.out.println(count);
//count = 0; //
res = new ArrayList<>();// res list
}
}
private static List list = new ArrayList<>();
private static List> res = new ArrayList<>();
// private static int count = 0;//
public static void findSum(int sum, int n) {
if (n < 1 || sum < 1)
return;
if (sum <= n) {//
list.add(sum); // sum < n , sum
res.add(new LinkedList<>(list));
list.remove(list.size() - 1);
// count++;//
return;
}
list.add(n);
findSum(sum - n, n - 1);// n , n=n-1,sum=sum-n
list.remove(list.size() - 1);
findSum(sum, n - 1); // n , n=n-1,sum=sum
}
}