Primes Product
来源:互联网 发布:vmware软件购买 编辑:程序博客网 时间:2024/06/06 05:19
Suppose we can primes [2, 3, 5]. We should get [2, 3, 5, 6, 10, 15, 30].
1: First method, solve it recursively.
#include "header.h"using namespace std;void primeProduct(vector<int>& nums, vector<int>& res, int product, int pos) { if(pos > nums.size()) { return; } if(product != 1) { res.push_back(product); } for(int i = pos; i < nums.size(); ++i) { if(i > pos && nums[i] == nums[i-1]) continue; primeProduct(nums, res, product * nums[i], i + 1); }}vector<int> primeProduct(vector<int>& nums) { vector<int> res; int product = 1; int pos = 0; primeProduct(nums, res, product, 0); return res;}int main(void) { vector<int> nums{2, 3, 5}; vector<int> res = primeProduct(nums); for(int i = 0; i < res.size(); ++i) { cout << res[i] << " "; } cout << endl;}
2: Solve is iteratively using bitmap, same idea as subset.
#include "header.h"using namespace std;vector<int> uniquePrimes(vector<int>& primes) { int n = primes.size(); int mask = 1 << n; vector<int> res; for(int i = 1; i < mask; ++i) { int product = 1; for(int j = 0; j < primes.size(); ++j) { if(i & (1 << j)) product *= primes[j]; } res.push_back(product); } return res;}int main(void) { vector<int> primes {2, 3, 5}; vector<int> res = uniquePrimes(primes); for(int i = 0; i< res.size(); ++i) cout << res[i] << " "; cout << endl;}
0 0
- Primes Product
- JOJ2573:Product of two primes
- Primes
- product
- Product
- Product
- Product
- Product
- calculate primes
- hdu2161 Primes
- The Primes
- Primes 2161
- No_35Circular primes
- Truncatable primes
- T-primes
- NOJ Primes
- HDU2161 Primes
- Count Primes
- Button点击事件(显隐2)
- python中字典按键或键值排序
- Linux 2.0.2 中select()的主要代码片断——The C10M Problem
- ListView加CheckBox简单实现批量删除
- Android音频实时传输与播放(三):AMR硬编码与硬解码
- Primes Product
- 设计模式之工厂模式
- 设备app共享和通讯
- iOS KVC/KVO
- 《机器学习实战》读书笔记之k-近邻算法
- An article about hash function for hash table
- Java方法与主方法
- How to set a badge value on a UITabBarController item
- 重构的认知(一)