zoukankan      html  css  js  c++  java
  • [Locked] Factor combinations

    Numbers can be regarded as product of its factors. For example,

    8 = 2 x 2 x 2;
      = 2 x 4.
    

    Write a function that takes an integer n and return all possible combinations of its factors.

    Note: 

    1. Each combination‘s factors must be sorted ascending, for example: The factors of 2 and 6 is [2, 6], not [6, 2].
    2. You may assume that n is always positive.
    3. Factors should be greater than 1 and less than n.

    Examples: 
    input: 1
    output: 

    []
    

    input: 37
    output: 

    []
    

    input: 12
    output:

    [
      [2, 6],
      [2, 2, 3],
      [3, 4]
    ]
    

    input: 32
    output:

    [
      [2, 16],
      [2, 2, 8],
      [2, 2, 2, 4],
      [2, 2, 2, 2, 2],
      [2, 4, 4],
      [4, 8]
    ]

    分析:

      因子需要枚举出来,直接DFS

    代码:

    void dfs(int target, int start, vector<int> item, vector<vector<int> > &fc) {
        if(target == 1) {
            //去除num = num ( * 1)的分解情况
            if(item.size() > 1)
                fc.push_back(item);
            return;
        }
        for(int i = start; i <= target; i++) {
            if(target % i == 0) {
                item.push_back(i);
                dfs(target / i, i, item, fc);
                item.pop_back();
            }
        }
        return;
    }
    vector<vector<int> > factor(int num) {
        vector<int> item;
        vector<vector<int> > fc;
        dfs(num, 2, item, fc);
        return fc;
    }
  • 相关阅读:
    SQL Server的全局变量
    SQL局部变量
    视图和表之间的区别和联系
    SQL Server中开发常用的数据类型
    Bootstrap 字体图标、下拉菜单、按钮组
    Bootstrap 按钮,图片,辅助类
    Bootstrap表单
    Bootstrap表格
    Bootstrap排版类
    Bootstrap网格系统
  • 原文地址:https://www.cnblogs.com/littletail/p/5216493.html
Copyright © 2011-2022 走看看