펜, 상자 및 자동차의 3 가지 항목이 있다고 상상해보십시오. 최대 9 개의 펜, 최대 5 개의 상자 및 최대 2 개의 자동차를 가질 수 있습니다. 당신이 가질 수있는 모든 아이템의 조합의 합계를 어떻게 계산합니까? 여기 Integer가 Java에서 최대 값을 갖는 String, Integer 쌍의 모든 조합을 사용하여 효율적으로 계산하는 방법은 무엇입니까?
내가 현재 가지고있는 코드입니다 :이 작품과 조합의 수를 더한 총 가격과 출력을 제공 int maxPens = 9;
int maxBoxes = 5;
int maxCars = 2;
Double penPrice = 1.5;
Double boxPrice = 50.0;
Double carPrice = 150.0;
int penCount = 0;
int boxCount = 0;
int carCount = 0;
int totalCount = 1;
while (penCount <= maxPens) {
boxCount = 0;
while (boxCount <= maxBoxes) {
carCount = 0;
while (carCount <= maxCars) {
Double totalPrice = (penCount * penPrice) + (boxCount * boxPrice) + (carCount * carPrice);
System.out.println(totalCount + " = " + totalPrice);
totalCount++;
carCount++;
}
boxCount++;
}
penCount++;
}
하지만, 정말 지저분한 느낌 그리고 난 다음 다른 항목을 추가하려면 I 메소드에 반복을 추가해야합니다. 예를 들어 다음과 같은지도를 사용하여지도를 사용할 수 있습니까?
Map<String, Integer> maxCountMap = new HashMap<String, Integer>();
Map<String, Double> priceMap = new HashMap<String, Integer>();
그리고이를 통해 반복 할 수 있습니까?
없는 아름다운 솔루션하지만 난 http://ideone.com/42wTJJ 같은 당신은 그것이 잘못되고 있음을 맞아 – zapl
일반적인 충분한 해결책이 될 것이라고 생각 멋지지 않아! 그러나 확실히 상자를 체크하는 것으로 보인다. – ollym