数据的所有组合都是产品的两个整数
Figure all combinations of two integers of a product
示例:两个整数的组合,其产品为36
输出:
1*36,2*18,3*12,4*9,6*6等。
我前一段时间在一本书上发现了这个问题,我想不出一种方法。请建议此问题的方法/代码。
您可以做类似的事情:
#include <iostream>
int main()
{
int n = 36;
int biggestDivisor = n; // in case n is prime number, biggestDivisor is n
for (int i = 1; i < biggestDivisor; i++) {
if (n % i == 0) {
std::cout << i << "*" << n / i << " ";
biggestDivisor = n / i; // done so as to prevent 9 * 4 from getting printed if 4 * 9 is printed
}
}
}
请注意,上述方法适用于所有n > 1
。
根据我的理解,您不想打印9 * 4,如果已经打印了4 * 9。
如果要打印所有对,请执行此操作:
#include <iostream>
#include <set>
int main()
{
int n = 36;
int biggestDivisor = n;
std::set<std::pair<int, int> > combinationsList;
for (int i = 1; i < biggestDivisor; i++) {
if (n % i == 0) {
combinationsList.insert(std::make_pair(i, n / i));
combinationsList.insert(std::make_pair(n / i, i));
biggestDivisor = n / i;
}
}
for (const auto &ele: combinationsList) {
std::cout << ele.first << "*" << ele.second << " ";
}
}
相关文章:
- C++需要帮助从用户那里获得一个整数,并确保它在另外两个整数之间
- 比较C++中两个整数的最有效和最干净的方法是什么?
- 比较两个整数在C++中与未知 int 类型的相等性
- 如何组合两个整数向量
- 在两个整数之间交换最右边的N位
- 打印出两个整数之间的偶数
- Python 等效代码,可像C++一样直接附加两个整数
- 移位运算符如何在查找两个整数中的不同位数?
- 运算符"|"如何计算两个整数?
- 如何找出在两个整数的乘积中设置了多少位(等于 1)
- 当键是两个整数时,C 地图或unordered_map
- C 将两个整数进入队列
- 比较 C++ 字符串打印中的两个整数数组
- 为什么双精度不存储两个整数的乘积
- C++将字符串输入拆分为两个整数
- C 中的内存模型:为什么在同一内存位置分配了结构中的两个整数
- 获取所有方式以两个整数的产品表示数字
- Systemc传输级建模从TLM_Generic_Payload提取两个整数
- 数据的所有组合都是产品的两个整数
- 编写一个功能,该函数将使用框架交换两个整数