이 알고리즘은 십진, 센트, 페니 만 사용하여 입력 금액을 변경할 수있는 방법을 찾아야합니다. 나의 접근 방식은 나누기와 정복 전략을 사용하고 가장 큰 동전, 십센트 및 동전을 사용하지 않고 변경하는 방법의 수를 변경하는 방법의 수를 찾아 문제를 분리하는 것이 었습니다. 이 알고리즘에 대한 구현을 작성하여 1 ... 14의 입력에 대해 문제를 올바르게 해결하지만 입력이 15보다 크거나 같으면 반환 된 결과가 올바르지 않습니다. 분명히 내 알고리즘이 잘못되어 코드를 수정하기 위해 어떤 변화가 필요하며 내 접근법이 적절한 분할 및 정복 솔루션인지 궁금합니다.제한된 동전으로 변경하기위한 알고리즘 나누기 및 정복
public static int makeChange(int n) {
if(n < 0)
return 0;
else {
int sum = makeChange(n-10) + makeChange(n-5) + 1;
return sum;
}
}
많은 감사를 다음과 같이
코드입니다.
'makeChange2' 어떠한가 계산하면 1을 반환해야 출력 대신에 그것을 수정해야하고, 표시 할 수있는 모든 것들을 요약한다 ? 그것을 게시하십시오. – Raptor
동적 프로그래밍은 분할 및 정복보다이 문제에 더 적합합니다. – Kunal
* "입력이 15보다 크거나 같으면 반환 된 결과가 잘못되었습니다."* 어떤 결과가 나타 났습니까? 어떤 결과를 기대 했습니까? (또는 당신은 단지 우리를 "부정확 한"상태로 남겨 둘 예정입니까?). 나는 또한 당신이 * 실제로 귀하의 게시물에 질문을하지 * 지적합니다. – abelenky