使用C++写一个程序,要求输入若干个数,输出其中和为36的组合
时间: 2023-02-13 22:58:04 浏览: 56
好的,这是一个简单的暴力枚举的例子:
```
#include <stdio.h>
int main() {
int a[100]; // 假设最多输入100个数
int n; // n为输入的数的个数
int sum; // sum为和为36的数的和
printf("请输入数的个数:");
scanf("%d", &n);
printf("请输入%d个数:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
// 枚举所有可能的组合
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
for (int k = j + 1; k < n; k++) {
sum = a[i] + a[j] + a[k];
if (sum == 36) {
printf("%d %d %d\n", a[i], a[j], a[k]);
}
}
}
}
return 0;
}
```
这个程序输出所有和为36的三个数的组合。
注意:如果数的个数很大,这个程序的时间复杂度将会非常高,因此不推荐使用。
相关问题
使用C++写一个输入三个数,输出最小值的程序
```c
#include <stdio.h>
int main() {
int a, b, c;
printf("请输入三个整数:\n");
scanf("%d%d%d", &a, &b, &c);
int min = a;
if (b < min) {
min = b;
}
if (c < min) {
min = c;
}
printf("最小值是:%d\n", min);
return 0;
}
```
运行结果:
```
请输入三个整数:
10 5 20
最小值是:5
```
使用C++写一个输入为字符串转为16进制数的程序
下面是一个简单的 C++ 程序,可以把一个字符串转换为 16 进制数:
```c++
#include <iostream>
#include <string>
#include <sstream>
#include <iomanip>
int main() {
std::string input;
std::cout << "Enter a string: ";
std::getline(std::cin, input);
std::stringstream ss;
for (char c : input) {
ss << std::hex << std::setw(2) << std::setfill('0') << static_cast<int>(c);
}
std::cout << "Hexadecimal representation: " << ss.str() << std::endl;
return 0;
}
```
程序首先从用户输入中读取一个字符串,然后使用 `std::stringstream` 将每个字符转换为其对应的 16 进制数。使用 `std::setw(2)` 和 `std::setfill('0')` 来确保每个 16 进制数都是两位数,并使用 `std::hex` 来指示输出为 16 进制。
实际运行时,程序应该输出类似以下的内容:
```
Enter a string: Hello, world!
Hexadecimal representation: 48656c6c6f2c20776f726c6421
```