합이 n이 되는 모든 조합 찾기

WBOY
풀어 주다: 2016-08-08 09:06:36
원래의
2193명이 탐색했습니다.

숫자 n이 주어졌습니다

요구사항:
(1) 방정식 좌변의 정수 값은 1~n-1입니다.
(2) 방정식 좌변의 합은 다음과 같습니다. N.

<code>若 n = 3;
1 + 1 + 1 = 3;
1 + 2 = 3;</code>
로그인 후 복사
로그인 후 복사

답글 내용:

숫자 n이 주어졌습니다

요구사항:
(1) 방정식 좌변의 정수 값은 1~n-1입니다.
(2) 방정식 좌변의 합은 다음과 같습니다. N.

<code>若 n = 3;
1 + 1 + 1 = 3;
1 + 2 = 3;</code>
로그인 후 복사
로그인 후 복사

포스터를 보고 배울 수 있습니다母函数

이것은 상위 기능에 대한 템플릿 질문이어야 합니다

<code>function calcN (n) {
    var res = [],
        cache = {};

    loop(n);

    function loop(k, arr) {
        arr = arr || [];
        var i = 1, count = k / 2 | 0;
        cache[k] = true;
        while (i <= count) {
            
            res.push(arr.concat([i, k - i]));

            if (!cache.hasOwnProperty(i)) {
                loop(i, [k - i].concat(arr));
            }

            if (!cache.hasOwnProperty(k - i)) {
                loop(k - i, [i].concat(arr));
            }

            i++;        
        }
  }
  return res;
}
// 测试部分:
console.log(calcN(5));
// 输出
[ [ 1, 4 ],
  [ 1, 1, 3 ],
  [ 1, 1, 1, 2 ],
  [ 1, 1, 1, 1, 1 ],
  [ 1, 2, 2 ],
  [ 2, 3 ] ]</code>
로그인 후 복사

C++의 경우 위 내용을 토대로 수정하고 map, vector

을 사용하세요.
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!