gpt4 book ai didi

c - 打印 C 中 int 数组的所有递减组合

转载 作者:行者123 更新时间:2023-11-30 15:26:41 25 4
gpt4 key购买 nike

我有一个 int 数组,我需要打印所有可能的从最大数字开始的递减组合。示例如下:

int array[MAX_LEN]={ 5 , 4 , 3 , 2 , 1 }

和预期输出:

5 , 4 , 3 , 2 , 1  
5 , 4 , 3 , 2
5 , 4 , 3 , 1
5 , 4 , 2 , 1
5 , 3 , 2 , 1
5 , 2 , 1
.
.
5 , 1
.
.
5

有人可以给我建议吗?谢谢

最佳答案

这个问题可以表示为“对于 [4,3,2,1] 的每个 subsequence 打印 5,后跟子序列”

要查找所有子序列,您可以按照以下方式执行操作

findAllSubsequences(array) {
if (array is empty)
return an empty list

result = new list

head = array[0] // 4
tail = array[1...] // [3, 2, 1]

tailSubsequences = findAllSubsequences(tail) // recurse on tail

// Add all subsequences that don't include head
// [3,2,1] [3,1] [2,1] ...
result.addAll(tailSubsequences)

// Add all subsequences that do include head
// [4,3,2,1] [4,3,1] [4,2,1] ...
for each subsequence s in tailSubsequences
result.add(head concatenated with s)

return result
}

关于c - 打印 C 中 int 数组的所有递减组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27316974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com