# 凑出n分钱的全部组合

python

```python
'''
有1分，2分，5分，10分四种硬币，每种硬币数量无限，给定n分钱(n<10000)，有多少中组合可以组成n分钱？
'''


def Combination(money_arr, index, n, vec):
    if n == 0:
        for vi in vec:
            print(vi, end=' ')
        print()
    if n < 0:
        return
    for i in range(index, len(money_arr)):
        vec.append(money_arr[i])
        Combination(money_arr, i, n - money_arr[i], vec)
        vec.pop()


def PrintCombination(n):
    money_arr = [1, 2, 5, 10]
    vec = []
    Combination(money_arr, 0, n, vec)


if __name__ == '__main__':
    n = 13
    print(n, '分钱的组合情况如下：')
    PrintCombination(13)
'''
13 分钱的组合情况如下：
1 1 1 1 1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 1 1 2 
1 1 1 1 1 1 1 1 1 2 2 
1 1 1 1 1 1 1 1 5 
1 1 1 1 1 1 1 2 2 2 
1 1 1 1 1 1 2 5 
1 1 1 1 1 2 2 2 2 
1 1 1 1 2 2 5 
1 1 1 2 2 2 2 2 
1 1 1 5 5 
1 1 1 10 
1 1 2 2 2 5 
1 2 2 2 2 2 2 
1 2 5 5 
1 2 10 
2 2 2 2 5 
'''
```

c++

```cpp
void Combination(int *a,int index,int n,vector<int>& vec)
{
    if (n==0)
    {
        vector<int>::iterator iter=vec.begin();
        for (;iter!=vec.end();++iter)
        {
            cout<<*iter<<" ";
        }
        cout<<endl;
    }

    if(n<0)
        return;

    for (int i=index;i<4;i++)
    {
        vec.push_back(a[i]);
        Combination(a,i,n-a[i],vec);
        vec.pop_back();
    }

}

void PrintCombination(int n)
{
    int a[4]={1,2,5,10};
    vector<int> vec;
    Combination(a,0,n,vec);
}

void main() 
{  
    int n;
    cin>>n;
    cout<<n<<"分钱的组合情况如下："<<endl;
    PrintCombination(n);}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://im-qianuxn.gitbook.io/pytorch/ji-suan-ji/shua-ti/si-xiang-lei/di-gui/cou-chu-n-fen-qian.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
