练习3] 由0到4五个数字,组成5位数,每个数字用一次,但个位和千位不能为2(当然万位不能为0),输出所有可能的五位数
时间: 2024-04-16 17:26:30 浏览: 28
以下是一个使用C++编写的程序,用于输出由0到4五个数字组成的五位数,其中每个数字只能使用一次,且个位和千位不能为2(万位不能为0)的所有可能情况:
```cpp
#include <iostream>
void generateNumbers(int digits[], int size, int index) {
if (index == size) {
for (int i = 0; i < size; i++) {
std::cout << digits[i];
}
std::cout << std::endl;
return;
}
for (int i = 0; i <= 4; i++) {
if (index == 0 && i == 0) {
continue; // Skip if the first digit is 0
}
if (index == 3 && i == 2) {
continue; // Skip if the thousands digit is 2
}
if (index == 4 && i == 2) {
continue; // Skip if the units digit is 2
}
digits[index] = i;
generateNumbers(digits, size, index + 1);
}
}
int main() {
int digits[5];
generateNumbers(digits, 5, 0);
return 0;
}
```
在这段代码中,`generateNumbers` 函数使用递归来生成所有满足条件的五位数。它通过一个 `digits` 数组来存储当前生成的数字。在每个位置上,它检查当前位置是否满足限制条件,如果满足,则将该数字存储在 `digits` 数组中,并递归调用自身来生成下一个位置的数字。当生成完成五位数时,它将 `digits` 数组打印出来。
在 `main` 函数中,我们创建一个大小为5的 `digits` 数组,并调用 `generateNumbers` 函数来生成所有可能的五位数。
请注意,为了简化示例,这段代码没有进行输入验证。在实际应用中,您可能需要添加输入验证以确保输入的正确性。
阅读全文