• [C++]2-6 排列


    /*
        排列(Permutation)
        用1,2,3,...,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi = 1:2:3。
        按照"abc def ghi"的格式输出所有解。每行一个解。提示:不必太动脑筋。
    
        分析:
            全排列
                对于next_permutation函数,其函数原型为:
                #include <algorithm>
                    bool next_permutation(iterator start,iterator end)
                    当前序列不存在下一个排列时,函数返回false,否则返回true
                    此外,next_permutation(node,node+n,cmp)可以对结构体num按照自定义的排序方式cmp进行排序。
    */
    #include <iostream>
    #include <algorithm>
    
    using namespace std;
    
    int main()
    {
        int nums[9] = {1,2,3,4,5,6,7,8,9};
        int abc,def,ghi;
        do{
            abc = nums[0]*100 + nums[1]*10 + nums[2];
            def = nums[3]*100 + nums[4]*10 + nums[5];
            ghi = nums[6]*100 + nums[7]*10 + nums[8];
            if((ghi == 3*abc) && (def == 2*abc)){
                printf("%d%d%d %d%d%d %d%d%d
    ", nums[0], nums[1], nums[2], nums[3], nums[4], nums[5], nums[6], nums[7], nums[8]);
            }
        }while(next_permutation( nums, nums + 9));
        return 0;
    }
    

      

    【参考文献】

      1.刘汝佳.算法竞赛入门经典

  • 相关阅读:
    AngularJS自定义表单验证器
    AngularJS自定义表单验证
    DataTables自定义筛选器
    DataTables列过滤器
    DataTables语言国际化
    DataTables DOM定位
    DataTables自定义事件
    DataTables给表格绑定事件
    自定义Celery任务记录器
    celery 日志设置
  • 原文地址:https://www.cnblogs.com/johnnyzen/p/9067936.html
Copyright © 2020-2023  润新知