1
0
mirror of https://github.com/MADTeacher/go_basics.git synced 2025-11-23 21:34:47 +02:00
Files
go_basics/part_1/1.14/8.go
2025-05-28 14:52:05 +03:00

74 lines
1.6 KiB
Go

package main
import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
var keys []int
var values []string
// Чтение ключей
if !scanner.Scan() { // если произошла ошибка
return // завершаем выполнение программы
}
keyParts := strings.Fields(scanner.Text())
// преобразование в целочисленный срез
for _, part := range keyParts {
num, err := strconv.Atoi(part)
if err != nil {
fmt.Println("Ошибка в ключах:", part)
return
}
keys = append(keys, num)
}
// Чтение значений
if !scanner.Scan() {
return
}
values = strings.Fields(scanner.Text())
// Проверка на то, что количество ключей и значений совпадает
if len(keys) != len(values) {
fmt.Println("Количество ключей и значений не совпадает")
return
}
// Чтение числа A
if !scanner.Scan() {
return
}
a, err := strconv.Atoi(scanner.Text())
if err != nil || a == 0 {
fmt.Println("Некорректное число A")
return
}
// Создание и заполнение таблицы
data := make(map[int]string)
for i := range keys {
data[keys[i]] = values[i]
}
// Поиск ключей для удаления
var toDelete []int
for k := range data {
if k%a == 0 {
toDelete = append(toDelete, k)
}
}
// Удаление элементов
for _, k := range toDelete {
delete(data, k)
}
fmt.Println(data)
}