gpt/2025-12-10/sorting_letters_recursive.go (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
package main
import "fmt"
func permute(nums []byte, start int) {
if start == len(nums) {
fmt.Printf("%c\n", nums)
return
}
n := len(nums)
for i := start; i < n; i++ {
nums[start], nums[i] = nums[i], nums[start]
permute(nums, start+1)
nums[start], nums[i] = nums[i], nums[start]
}
}
func letterSlice(n int) []byte {
if n <= 0 {
return []byte{}
}
if n > 26 {
n = 26
}
res := make([]byte, n)
for i := 0; i < n; i++ {
res[i] = 'a' + byte(i)
}
return res
}
func getIntFromUser() int {
var n int
//fmt.Print("Enter a number: ")
_, err := fmt.Scan(&n)
if err != nil {
fmt.Println("Error reading number:", err)
panic("Fehler")
}
return n
}
func main() {
//size := getIntFromUser()
nums := letterSlice(10)
permute(nums, 0)
}
|