New Go
This commit is contained in:
46
BasicSyntax/prime/Circul.go
Normal file
46
BasicSyntax/prime/Circul.go
Normal file
@@ -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)
|
||||
}
|
||||
23
BasicSyntax/prime/main.go
Normal file
23
BasicSyntax/prime/main.go
Normal file
@@ -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")
|
||||
}
|
||||
|
||||
}
|
||||
33
BasicSyntax/prime/realnum.go
Normal file
33
BasicSyntax/prime/realnum.go
Normal file
@@ -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)
|
||||
}
|
||||
24
BasicSyntax/prime/suffix.go
Normal file
24
BasicSyntax/prime/suffix.go
Normal file
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
59
BasicSyntax/prime/toeng.go
Normal file
59
BasicSyntax/prime/toeng.go
Normal file
@@ -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))
|
||||
}
|
||||
31
BasicSyntax/prime/transame.go
Normal file
31
BasicSyntax/prime/transame.go
Normal file
@@ -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")
|
||||
}
|
||||
}
|
||||
41
BasicSyntax/prime/transpose.go
Normal file
41
BasicSyntax/prime/transpose.go
Normal file
@@ -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()
|
||||
}
|
||||
}
|
||||
15
BasicSyntax/prime/yoseff.go
Normal file
15
BasicSyntax/prime/yoseff.go
Normal file
@@ -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:]...)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user