Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ int main() {
}
cout << cnt;
return 0;
}
}
16 changes: 16 additions & 0 deletions BasicLevel_Golang/1001. 害死人不偿命的(3n+1)猜想 (15).go
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package main

import "fmt"

func main() {
var n, i int
fmt.Scanln(&n)
for ; n > 1; i++ {
if n%2 == 0 {
n = n / 2
} else {
n = (3*n + 1) / 2
}
}
fmt.Println(i)
}
38 changes: 38 additions & 0 deletions BasicLevel_Golang/1002. 写出这个数 (20).go
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package main

import (
"fmt"
"strconv"
)

func main() {
num := map[rune]string{
'0': "ling",
'1': "yi",
'2': "er",
'3': "san",
'4': "si",
'5': "wu",
'6': "liu",
'7': "qi",
'8': "ba",
'9': "jiu",
}
var (
n string
sum int
)
//n = "1234567890987654321123456789"
fmt.Scanln(&n)
for _, k := range n {
sum = sum + int(k) - 48
}
str := strconv.Itoa(sum)
for i, k := range str {
if i == len(str)-1 {
fmt.Printf("%s", num[k])
break
}
fmt.Printf("%s ", num[k])
}
}
35 changes: 35 additions & 0 deletions BasicLevel_Golang/1003. 我要通过!(20).go
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package main

import (
"fmt"
)

func main() {
var num int
var str string
fmt.Scanf("%d\n", &num)
for i := 0; i < num; i++ {
var (
pos int
count [3]int
)
fmt.Scanln(&str)
//str = "APAAATAA"
for _, v := range str {
if v == 'A' {
count[pos]++
} else if v == 'P' && pos == 0 {
pos = 1
} else if v == 'T' && pos == 1 {
pos = 2
} else {
break
}
}
if pos == 2 && count[1] != 0 && count[2] == count[1]*count[0] {
fmt.Println("YES")
} else {
fmt.Println("NO")
}
}
}
37 changes: 37 additions & 0 deletions BasicLevel_Golang/1004 成绩排名 (20).go
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package main

import "fmt"

type student struct {
name string
id string
grade int
}

func main() {
var (
snum int
stu []student
first, last int
)
fmt.Scanln(&snum)
for i := 0; i < snum; i++ {
var (
tname string
tid string
tgrade int
)
fmt.Scanln(&tname, &tid, &tgrade)
stu = append(stu, student{tname, tid, tgrade})
}

for k, v := range stu {
if v.grade > stu[first].grade {
first = k
} else if v.grade < stu[last].grade {
last = k
}
}
fmt.Println(stu[first].name, stu[first].id)
fmt.Println(stu[last].name, stu[last].id)
}
45 changes: 45 additions & 0 deletions BasicLevel_Golang/1005. 继续(3n+1)猜想 (25).go
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package main

import (
"fmt"
"sort"
)

func main() {
var (
num int
series []int
cover = map[int]int{}
tmp int
result []int
)
fmt.Scanln(&num)
for i := 0; i < num; i++ {
fmt.Scanf("%d", &tmp)
series = append(series, tmp)
for tmp > 1 {
if tmp%2 == 0 {
tmp = tmp / 2
} else {
tmp = (3*tmp + 1) / 2
}
if cover[tmp] == 1 {
break
} else {
cover[tmp] = 1
}
}
}
sort.Ints(series)
for i := 0; i < len(series); i++ {
if cover[series[i]] == 1 {
continue
}
result = append(result, series[i])
}
for i := len(result) - 1; i > 0; i-- {
fmt.Printf("%d ", result[i])
}
fmt.Printf("%d", result[0])

}
26 changes: 26 additions & 0 deletions BasicLevel_Golang/1006. 换个格式输出整数 (15).go
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package main

import (
"fmt"
)

func main() {
var (
num int
n []int
)
fmt.Scanln(&num)
for i := 0; i < 3; i++ {
n = append(n, num%10)
num = num / 10
}
for i := 0; i < n[2]; i++ {
fmt.Printf("B")
}
for i := 0; i < n[1]; i++ {
fmt.Printf("S")
}
for i := 0; i < n[0]; i++ {
fmt.Printf("%d", i+1)
}
}
31 changes: 31 additions & 0 deletions BasicLevel_Golang/1007. 素数对猜想 (20).go
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package main

import "fmt"

func isprime(a int) bool {
for i := 2; i*i <= a; i++ {
if a%i == 0 {
return false
}
}
return true
}

func main() {
var (
num int
old = 3
count int
)
fmt.Scanln(&num)
for i := 5; i <= num; i = i + 2 {

if isprime(i) {
if i-old == 2 {
count++
}
old = i
}
}
fmt.Println(count)
}
23 changes: 23 additions & 0 deletions BasicLevel_Golang/1008. 数组元素循环右移问题 (20).go
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package main

import "fmt"

func main() {
var (
n, m int
arr = []int{}
)
fmt.Scanln(&n, &m)
for i := 0; i < n; i++ {
var tmp int
fmt.Scanf("%d", &tmp)
arr = append(arr, tmp)
}
for j := 0; j < m; j++ {
arr = append(arr[n-1:], arr[:n-1]...)
}
for i := 0; i < n-1; i++ {
fmt.Printf("%d ", arr[i])
}
fmt.Printf("%d", arr[n-1])
}
20 changes: 20 additions & 0 deletions BasicLevel_Golang/1009. 说反话 (20).go
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package main

import "fmt"

func main() {
var (
str = []string{}
s string
n int
)
n, _ = fmt.Scanf("%s", &s)
for n == 1 {
str = append(str, s)
n, _ = fmt.Scanf("%s", &s)
}
for i := len(str) - 1; i > 0; i-- {
fmt.Printf("%s ", str[i])
}
fmt.Printf("%s", str[0])
}
24 changes: 24 additions & 0 deletions BasicLevel_Golang/1010. 一元多项式求导 (25).go
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package main

import "fmt"

func main() {
var (
a, b int
flag int
)
input, _ := fmt.Scanf("%d %d", &a, &b)
for input == 2 {
if b != 0 {
if flag == 1 {
fmt.Printf(" ")
}
fmt.Printf("%d %d", a*b, b-1)
flag = 1
}
input, _ = fmt.Scanf("%d %d", &a, &b)
}
if flag == 0 {
fmt.Printf("0 0")
}
}
15 changes: 15 additions & 0 deletions BasicLevel_Golang/1011. A+B和C (15).go
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package main

import "fmt"

func main() {
var (
a, b, c int64
num int
)
fmt.Scanln(&num)
for i := 0; i < num; i++ {
fmt.Scanf("%d %d %d", &a, &b, &c)
fmt.Printf("Case #%d: %t\n", i+1, a+b > c)
}
}
62 changes: 62 additions & 0 deletions BasicLevel_Golang/1012. 数字分类 (20).go
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package main

import "fmt"

func main() {
var (
tmp, num int
sum [5]int
count [5]int
)
fmt.Scanf("%d", &num)
for i := 0; i < num; i++ {
fmt.Scanf("%d", &tmp)
switch tmp % 5 {
case 0:
if tmp%2 == 0 {
count[0]++
sum[0] = sum[0] + tmp
}
case 1:
count[1]++
if count[1]%2 == 1 {
sum[1] = sum[1] + tmp
} else {
sum[1] = sum[1] - tmp
}
case 2:
count[2]++
case 3:
sum[3] = sum[3] + tmp
count[3]++
case 4:
count[4]++
if tmp > sum[4] {
sum[4] = tmp
}
}
}
//fmt.Println(count,sum)
for i := 0; i < 4; i++ {
if count[i] == 0 {
fmt.Printf("N ")
continue
}
switch i {
case 0:
fmt.Printf("%d ", sum[0])
case 1:
fmt.Printf("%d ", sum[1])
case 2:
fmt.Printf("%d ", count[2])
case 3:
fmt.Printf("%.1f ", float32(sum[3])/float32(count[3]))
}
}
if count[4] != 0 {
fmt.Printf("%d", sum[4])
} else {
fmt.Printf("N")
}

}
Loading