码迷,mamicode.com
首页 > 其他好文 > 详细

枚举:给全排列限定条件

时间:2015-04-08 00:59:35      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

枚举:给全排列限定条件

枚举:给全排列限定条件

假如我们要求 abc + def = ghi abcdefghi 均为数字,且各不相同,求符合条件的式子

  1. 可以用9个for…
  2. 通过递归回溯来 枚举 然后在结束的时候判断一下…
// CreateTime: 2015-04-07 23:26:57

#include <iostream>

using namespace std;

int a[10];
int v[10];

void dfs(int n) {
    if (n == 10) {
        if (a[1]*100+a[2]*10+a[3] + a[4]*100+a[5]*10+a[6] == a[7]*100+a[8]*10+a[9]) {
            for (int i = 1; i <= 9; i++) {
                cout << a[i];
            }
            cout << endl;
        }
        return;
    }
    for (int i = 1; i <= 9; i++) {
        if (!v[i]) {
            v[i] = 1;
            a[n] = i;
            dfs(n+1);
            v[i] = 0;
        }
    }
}

int main(void) {
    dfs(1);

    return 0;
}

枚举:给全排列限定条件

标签:

原文地址:http://www.cnblogs.com/sunznx/p/4401073.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!