diff --git a/BasicSyntax/prime/Circul.go b/BasicSyntax/prime/Circul.go new file mode 100644 index 0000000..d88ad8b --- /dev/null +++ b/BasicSyntax/prime/Circul.go @@ -0,0 +1,46 @@ +package main + +import ( + "fmt" + "math" +) + +func circle(x1, y1, x2, y2 float64) float64 { + return math.Hypot(x2-x1, y2-y1) +} + +func main() { + var n int + fmt.Scan(&n) + + if n <= 0 { + fmt.Println("0.00") + return + } + if n == 1 { + fmt.Println("0.00") + return + } + + var x1, y1 float64 + fmt.Scan(&x1, &y1) + + if n == 2 { + var x2, y2 float64 + fmt.Scan(&x2, &y2) + fmt.Printf("%.2f\n", circle(x1, y1, x2, y2)) + return + } + + firstX, firstY := x1, y1 + total := 0.0 + for i := 1; i < n; i++ { + var x2, y2 float64 + fmt.Scan(&x2, &y2) + total += circle(x1, y1, x2, y2) + x1, y1 = x2, y2 + } + total += circle(x1, y1, firstX, firstY) + + fmt.Printf("%.2f\n", total) +} diff --git a/BasicSyntax/prime/main.go b/BasicSyntax/prime/main.go new file mode 100644 index 0000000..816c862 --- /dev/null +++ b/BasicSyntax/prime/main.go @@ -0,0 +1,23 @@ +package main + +import "fmt" + +func prime(p int) bool { + for i := 2; i*i <= p; i++ { + if p % i == 0 { + return false + } + } + return true +} + +func main(){ + var n int + fmt.Scan(&n) + if prime(n) { + fmt.Println("Y") + } else { + fmt.Println("N") + } + +} \ No newline at end of file diff --git a/BasicSyntax/prime/realnum.go b/BasicSyntax/prime/realnum.go new file mode 100644 index 0000000..fba14e4 --- /dev/null +++ b/BasicSyntax/prime/realnum.go @@ -0,0 +1,33 @@ +package main + +import "fmt" + +// 定义字符串反转函数 +func reverse(s string) string { + runes := []rune(s) + for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 { + runes[i], runes[j] = runes[j], runes[i] + } + return string(runes) +} + +func main() { + var n string + fmt.Scan(&n) + + // 检查是否以 + 或 - 开头 + if n[0] == '-' || n[0] == '+' { + fmt.Println("NULL") + return + } + + // 反转字符串 + n = reverse(n) + + // 去掉前导零 + for len(n) > 1 && n[0] == '0' { + n = n[1:] + } + + fmt.Println(n) +} diff --git a/BasicSyntax/prime/suffix.go b/BasicSyntax/prime/suffix.go new file mode 100644 index 0000000..0edeeda --- /dev/null +++ b/BasicSyntax/prime/suffix.go @@ -0,0 +1,24 @@ +package main +import "fmt" + +func check(a, b int) bool { + //默认前面的小于后面的 + for a >= 1 { + if a % 10 != b % 10 { + return false + } + a /= 10 + b /= 10 + } + return true +} +func main() { + var n int + fmt.Scan(&n) + for i := 1 ; i <= n; i++ { + x := i * i + if check(i, x) { + fmt.Printf("%d ", i) + } + } +} \ No newline at end of file diff --git a/BasicSyntax/prime/toeng.go b/BasicSyntax/prime/toeng.go new file mode 100644 index 0000000..d8c9cc5 --- /dev/null +++ b/BasicSyntax/prime/toeng.go @@ -0,0 +1,59 @@ +package main + +import "fmt" + +func numberToWords(n int) string { + if n < 0 || n >= 1000 { + return "ERR" + } + + ones := []string{"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"} + teens := []string{"ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", + "sixteen", "seventeen", "eighteen", "nineteen"} + tens := []string{"", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"} + + words := []string{} + + // 百位 + if n >= 100 { + words = append(words, ones[n/100]+" hundred") + n %= 100 + if n != 0 { + words = append(words, "and") + } + } + + // 十位和个位 + if n >= 20 { + if n%10 != 0 { + words = append(words, tens[n/10]+"-"+ones[n%10]) + } else { + words = append(words, tens[n/10]) + } + } else if n >= 10 { + words = append(words, teens[n-10]) + } else if n > 0 { + words = append(words, ones[n]) + } else if len(words) == 0 { // n == 0 + words = append(words, "zero") + } + + return joinWords(words) +} + +func joinWords(words []string) string { + res := "" + for i, w := range words { + if i > 0 { + res += " " + } + res += w + } + return res +} + +func main() { + var n int + fmt.Scan(&n) + fmt.Println(numberToWords(n)) +} diff --git a/BasicSyntax/prime/transame.go b/BasicSyntax/prime/transame.go new file mode 100644 index 0000000..4649abf --- /dev/null +++ b/BasicSyntax/prime/transame.go @@ -0,0 +1,31 @@ +package main + +import "fmt" + +func transpose(matrix [][]int) bool { + for i := range matrix { + for j := range matrix[i] { + if matrix[i][j] != matrix[j][i] { + return false + } + } + } + return true +} + +func main() { + var n int + fmt.Scan(&n) + matrix := make([][]int, n) + for i := range matrix { + matrix[i] = make([]int, n) + for j := range matrix[i] { + fmt.Scan(&matrix[i][j]) + } + } + if transpose(matrix) { + fmt.Println("YES") + } else { + fmt.Println("NO") + } +} \ No newline at end of file diff --git a/BasicSyntax/prime/transpose.go b/BasicSyntax/prime/transpose.go new file mode 100644 index 0000000..ebb5c0d --- /dev/null +++ b/BasicSyntax/prime/transpose.go @@ -0,0 +1,41 @@ +package main + +import "fmt" + +func transpose(matrix [][]int) [][]int { + m := len(matrix) + n := len(matrix[0]) + res := make([][]int, n) + for i := range res { + res[i] = make([]int, m) + } + for i := 0; i < m; i++ { + for j := 0; j < n; j++ { + res[j][i] = matrix[i][j] + } + } + return res +} + +func main() { + var n int + fmt.Scan(&n) + matrix := make([][]int, n) + for i := range matrix { + matrix[i] = make([]int, n) + for j := range matrix[i] { + fmt.Scan(&matrix[i][j]) + } + } + res := transpose(matrix) + for i := range res { + for j := range res[i] { + if j != n{ + fmt.Printf("%d ", res[i][j]) + } else { + fmt.Printf("%d", res[i][j]) + } + } + fmt.Println() + } +} \ No newline at end of file diff --git a/BasicSyntax/prime/yoseff.go b/BasicSyntax/prime/yoseff.go new file mode 100644 index 0000000..309d556 --- /dev/null +++ b/BasicSyntax/prime/yoseff.go @@ -0,0 +1,15 @@ +package main +import "fmt" + +func main(){ + var n, s, m int + fmt.Scan(&n, &s, &m) + arr := make([]int, n) + for i := 1; i <= n; i++ { + arr[i] = i + } + while len(arr) > 1 { + s = (s + m - 1) % len(arr) + arr = append(arr[:s], arr[s+1:]...) + } +} \ No newline at end of file