41. Go 언어 · 데이터 구 조 · 링 단 방향 링크 · 조세 프 문제 [손수건 잃 어 버 리 기 문제]
// ————
package main
import (
"fmt"
)
type Boy struct {
No int
Next *Boy // nil
}
// ,
// num:
// *Boy:
func Join(num int) *Boy {
first := &Boy{}
currtBoy := &Boy{}
if num<1 {
fmt.Println(" ~~~")
return first
}
for i := 1; i <=num; i++ {
boy := &Boy{
No:i,
}
// , [ ]
if i == 1 {
first = boy
currtBoy = boy
currtBoy.Next = first
}else{
currtBoy.Next = boy
currtBoy = boy
currtBoy.Next = first
}
}
return first
}
//
func Show (first *Boy) {
fmt.Println()
if first.Next == nil {
return
}
currBoy := first
for {
fmt.Printf("[No.%d]-->",currBoy.No)
if currBoy.Next == first {
fmt.Printf("[No.%d]",first.No)
break
}
currBoy = currBoy.Next
}
fmt.Println()
}
/*
1,2,3,...,n n , k(1<=k<=n)
1 , m , 1 ,
m , , ,
*/
func PlayGame(first *Boy ,startNo int,countNum int) {
if first.Next == nil {
fmt.Println(" ~~~")
return
}
// ,
//tail
tail := first
for {
if tail.Next == first{
break
}
tail = tail.Next
}
fmt.Println()
// 4. k(1<=k<=n)
// first startNo, n
// , k(startNo)
for i := 1; i <=startNo-1; i++ {
first = first.Next
tail = tail .Next
}
// 5. 1 , m ,
// 1 , m
// 1 , m[countNum]
for {
// 1 , countNum-1
for i := 1; i <=countNum-1; i++ {
first = first.Next
tail = tail .Next
}
fmt.Printf("[No.%d !]
",first.No)
first = first.Next
tail.Next = first
if tail == first {
break
}
}
fmt.Printf("[No.%d !]
",first.No)
}
func main() {
// 1. 1,2,3,...,n n
first := Join(5)
// 2. 。
Show(first)
// 3.
PlayGame(first,2,3)
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.