SPOJ 42 "Adding Reversed Numbers"

問題:https://www.spoj.pl/problems/ADDREV/

Go言語で書き直してみた.けっこうめちゃくちゃな気がする.

package main

import (
"scanner"
"strconv"
"os"
"fmt"
"bytes"
"strings"
)

func rev(s string) string {
        buf := bytes.NewBufferString(s).Bytes()
        res := make([]byte, len(s))
        for pos,c:= range buf {
                res[len(s)-pos-1]=c
        }
        return bytes.NewBuffer(res).String()
}

func main() {
        var s scanner.Scanner
        s.Init(os.Stdin)
        s.Scan()
        for n,_ := strconv.Atoi(s.TokenText()); n>0; n-- {
                s.Scan()
                a,_ := strconv.Atoi(rev(s.TokenText()))
                s.Scan()
                b,_ := strconv.Atoi(rev(s.TokenText()))
                fmt.Println(strings.Trim(rev(strconv.Itoa(a+b)), "0"))
        }

}