自学内容网 自学内容网

报数游戏-golang

package main

import (
"fmt"
"sort"
"strings"
)

type myItem struct {
index int
value int
}

func reflushMap(list []*myItem, value int) []*myItem {
newList := make([]*myItem, 0)

startIndex := 1
for i, item := range list {
if item.value == value {

for _, m := range list[i+1:] {
m.value = startIndex
startIndex++
newList = append(newList, m)
}

for _, m := range list[:i] {
m.value = startIndex
startIndex++
newList = append(newList, m)
}

break
}

}

return newList
}

func main() {
var M int
fmt.Scan(&M)

oldList := make([]*myItem, 0)
for i := 1; i <= 100; i++ {
oldList = append(oldList, &myItem{
index: i,
value: i,
})
}

indexStrs := make([]string, 0)
for {
oldList = reflushMap(oldList, M)
if len(oldList) < M {
indexs := make([]int, 0)
for _, item := range oldList {
indexs = append(indexs, item.index)
}
sort.Ints(indexs)

for _, item := range indexs {
indexStrs = append(indexStrs, fmt.Sprintf("%d", item))
}
break
}

}

fmt.Println(strings.Join(indexStrs, ","))

}


原文地址:https://blog.csdn.net/u014381782/article/details/142757412

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!