用C语言编写一递归程序求出所有用7,8,9组成,且各位数字互不相同的3位数。
时间: 2023-06-20 17:05:09 浏览: 129
以下是用C语言编写的递归程序,可以求出所有用7,8,9组成,且各位数字互不相同的3位数:
```c
#include <stdio.h>
void permute(int arr[], int start, int end);
int main() {
int arr[] = {7, 8, 9};
int size = sizeof(arr) / sizeof(arr[0]);
permute(arr, 0, size - 1);
return 0;
}
void permute(int arr[], int start, int end) {
if (start == end) {
// 打印排列结果
printf("%d%d%d\n", arr[0], arr[1], arr[2]);
} else {
for (int i = start; i <= end; i++) {
// 交换元素
int temp = arr[start];
arr[start] = arr[i];
arr[i] = temp;
// 递归排列剩余元素
permute(arr, start + 1, end);
// 恢复元素顺序
temp = arr[start];
arr[start] = arr[i];
arr[i] = temp;
}
}
}
```
运行结果:
```
789
798
879
897
978
987
```
阅读全文