C++ 有整数a,b;判断使用若干个a, b是否能凑出给定的整数c;若能凑出输出Yes,否则输出No
时间: 2024-10-21 12:14:50 浏览: 34
在C++中,判断两个整数a和b能否组合成另一个整数c,你可以通过迭代或循环的方式来解决这个问题。一种简单的方法是使用一个集合(如`std::set`)来存储已经看到的a * b的结果,并检查这个结果集合是否包含目标值c。
下面是一个基础的函数示例,用于检查是否可以通过一系列的a和b相乘得到c:
```cpp
#include <iostream>
#include <set>
bool canForm(int a, int b, int c) {
std::set<int> products;
while (a <= c / b) { // 遍历a从1到c/b的所有倍数
if (products.find(a * b) != products.end()) { // 如果当前乘积已存在,说明可以构成c
return true;
}
products.insert(a * b); // 将当前乘积加入集合
a++; // 增加a的值
}
return false; // 如果遍历结束仍未找到,返回false
}
int main() {
int a = 2, b = 3, c = 6;
if (canForm(a, b, c)) {
std::cout << "Yes" << std::endl;
} else {
std::cout << "No" << std::endl;
}
return 0;
}
```
阅读全文