Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "strconv"
- "strings"
- "os"
- "fmt"
- "bufio"
- )
- func main() {
- reader := bufio.NewReader(os.Stdin)
- fmt.Print("Input your problem: ")
- input, _ := reader.ReadString('\n')
- problem := strings.TrimSuffix(strings.TrimSuffix(string(input), "?\n"), "\n")
- problemSlice := strings.Split(problem, " ")
- var result *int
- for i, el := range problemSlice {
- switch el {
- case "plus":
- if result == nil {
- a, _ := strconv.Atoi(problemSlice[i-1])
- result = &a
- }
- b, _ := strconv.Atoi(problemSlice[i+1])
- x := *result + b
- result = &x
- case "minus":
- if result == nil {
- a, _ := strconv.Atoi(problemSlice[i-1])
- result = &a
- }
- b, _ := strconv.Atoi(problemSlice[i+1])
- x := *result - b
- result = &x
- case "multiplied":
- if result == nil {
- a, _ := strconv.Atoi(problemSlice[i-1])
- result = &a
- }
- b, _ := strconv.Atoi(problemSlice[i+2])
- x := *result * b
- result = &x
- case "divided":
- if result == nil {
- a, _ := strconv.Atoi(problemSlice[i-1])
- result = &a
- }
- b, _ := strconv.Atoi(problemSlice[i+2])
- x := *result / b
- result = &x
- }
- }
- fmt.Println(*result)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement