하나의 정수를 약간의 정수의 합으로 나누어 각각의 구분 방법을 출력하다
1206 단어 면접 문제
import java.util.ArrayList;
// ( max) ,
public class IntDivision {
// n , max
public static ArrayList> divideInt_r(int n, int max){
ArrayList> divisionList = new ArrayList>();
if(n <= 1){
ArrayList list = new ArrayList();
if(n==1) list.add(1);
divisionList.add(list);
return divisionList;
}
for(int i=max; i>0; i--){
ArrayList> newDivList = divideInt_r(n-i, Math.min(n-i, i));//sublist i, n-i
for(ArrayList sublist : newDivList){
sublist.add(0, i);
divisionList.add(sublist);
}
}
return divisionList;
}
public static void main(String[] args){
ArrayList> divisionList = divideInt_r(6,4);
System.out.println("Total divisions: "+divisionList.size());
for(ArrayList list : divisionList){
for(Integer num : list){
System.out.print(num+" ");
}
System.out.println();
}
}
}
Total divisions: 9
4 2
4 1 1
3 3
3 2 1
3 1 1 1
2 2 2
2 2 1 1
2 1 1 1 1
1 1 1 1 1 1
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 프로그래머 면접에서의 다중 스레드 문제 요약wait ()/notify ()/notify All () 의 모든 방법을 호출할 때, 현재 라인이 이 대상의 자물쇠를 얻지 못하면, Illegal MonitorState Exception의 이상을 던집니다. Thre...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.