递归问题归类

来源:互联网 发布:尺八制作图数据 编辑:程序博客网 时间:2024/06/14 11:21

1.函数功能:1~9的9个数字,每个数字只能出现一次,要求这样一个9位的整数;其第一位能被1整除,前两位能被2整除,前三位能被3整除,……,以此类推,前九位能被9整除


void NeedToNumber(int n, int k, bool used[10], vector<int> vec){    if (k && (n%k != 0))        return;    for (int i = 0; i < 10; i++)        used[i] = false;    if (k == 9)    {        vec.push_back(n);        return;    }    for (int i = 1; i <= 9; i++)    {        if (!used[i])        {            used[i] = true;            NeedToNumber(n * 10 + i, k + 1, used, vec);            used[i] = false;        }    }}void NeedToNumber(int n, int k){    bool used[10];    vector<int> vec;    NeedToNumber(n, k, used, vec);    for (int i = 0; i < vec.size(); i++)        cout << vec[i] << endl;}
1 0
原创粉丝点击