解题思路:
1.首先考虑只有一位的情况
2.多位数的时候,被除数如果小于除数,向后借位的时候,要考虑补0,我这边时候都考虑了补0,包括第一位如果小除数的情况,后面输出的时候再做判断,把前面不需要的0过滤掉
package main
import (
"fmt"
)
func main() {
var str string
var n int
fmt.Scanf("%s%d", &str, &n)
bStr := []byte(str)
length := len(bStr)
result := make([]int, length)
divisor := 0
quotient := 0
remainder := 0
j := 0
if length == 1 && int(bStr[0] - '0') < n {
fmt.Printf("0 %d", int(bStr[0] - '0'))
} else {
for i:=0; i<length; i++ {
if remainder >= 0 {
divisor = divisor * 10 + int(bStr[i] - '0')
}
if divisor >= n {
quotient = divisor / n
remainder = divisor % n
result[j] = quotient
divisor = remainder
} else {
result[j] = 0
}
j++
}
flag := true
for i:=0; i<j; i++ {
if result[i] == 0 && flag {
continue
}
fmt.Printf("%d", result[i])
flag = false
}
fmt.Printf(" %d\n", divisor)
}
}