这个文章主要是我找工作的一些随笔,因为在笔试过程中经常需要自己搞定输入输出,这个如果不会有思路也无法搞定,因此在这里写下这个blog来为后来者一些借鉴,减少走弯路的概率。
此外,这个练习可以基于牛客的一个竞赛进行练习,我都是基于这里的题目来练习,后来者们可参考一下我的代码,并自己敲一遍(实践很重要!)
A+B(1)
package main // 包名, 必需的,因为这里就是相当于一个go文件
import ( // 调用的包
"fmt"
"io"
)
func main() {
var a, b int
for {
// 循环获取输入
if _, err := fmt.Scan(&a,&b); err != io.EOF {
fmt.Println(a + b)
} else {
break
}
}
}
// 注: Scan从标准输入扫描文本,将成功读取的空白分隔的值保存进成功传递给本函数的参数。
// 换行视为空白。返回成功扫描的条目个数和遇到的任何错误。
// 如果读取的条目比提供的参数少,会返回一个错误报告原因
// 后面如果没有必要,比如说第二题,我不会获取对应的`n,err` ,
// 直接用起来的(就是假定输入都是正确的不会进行特别处理)
A+B(2)
package main
import "fmt"
func main() {
var t, a, b int
fmt.Scan(&t) //
for t > 0 {
fmt.Scan(&a, &b)
fmt.Println(a + b)
t--
}
}
// 如果是正常的业务开发的话,是需要获取err并进行处理的
// 业务处理的形式 后面题目不会写这种形式的,因为笔试有时间限制的
func main() {
var t, a, b int
if _, err := fmt.Scan(&t); err != nil {
// 处理错误
return
}
for t > 0 {
if _, err := fmt.Scan(&a, &b); err != nil {
// 处理错误
return
}
fmt.Println(a + b)
t--
}
}
A+B(3)
package main
import "fmt"
func main() {
var a, b int
for {
fmt.Scan(&a, &b)
if a == 0 && b == 0 {
break
}
fmt.Println