网站教程dw,wordpress图片按钮,网站做的一样侵权吗,移动宽带续费网上可以续费嘛数据结构01
数值处理
取整
日常用的四种
/ 整数除法#xff0c;截取整数部分math.Ceil 向上取整 “理解为天花板#xff0c;向上取值”math.Floor 向下取整 “理解为地板#xff0c;向下取值”math.Round 四舍五入
/ 整数除法#xff0c;截取整数部分
func main() { f…数据结构01
数值处理
取整
日常用的四种
/ 整数除法截取整数部分math.Ceil 向上取整 “理解为天花板向上取值”math.Floor 向下取整 “理解为地板向下取值”math.Round 四舍五入
/ 整数除法截取整数部分
func main() { fmt.Println(1/2, 5/2, 3/2) //0 2 1 fmt.Println(-1/2, -5/2, -3/2) // 0 -2 -1
}math.Ceil 向上取整 “理解为天花板向上取值”
func main() {fmt.Println(math.Ceil(2.01), math.Ceil(2.5), math.Ceil(2.8)) // 3 3 3fmt.Println(math.Ceil(-2.01), math.Ceil(-2.5), math.Ceil(-2.8)) // -2 -2 2
}math.Floor 向下取整 “理解为地板向下取值”
func main() {fmt.Println(math.Floor(2.01), math.Floor(2.5), math.Floor(2.8)) // 2 2 2fmt.Println(math.Floor(-2.01), math.Floor(-2.5), math.Floor(-2.8))// -3 -3 -3
}math.Round 四舍五入
func main() {fmt.Println(math.Round(2.01), math.Round(2.5), math.Round(2.8))fmt.Println(math.Round(-2.01), math.Round(-2.5), math.Round(-2.8))fmt.Println(math.Round(0.5), math.Round(1.5), math.Round(2.5),math.Round(3.5))
}
2 3 3
-2 -3 -3
1 2 3 4常用数值处理
fmt.Println(math.Abs(-2.7)) // 绝对值
fmt.Println(math.E, math.Pi) // 常数
fmt.Println(math.MaxInt16, math.MinInt16) // 常量极值
fmt.Println(math.Log10(100), math.Log2(8)) // 对数
fmt.Println(math.Max(1, 2), math.Min(-2, 3)) // 最大值、最小值
fmt.Println(math.Pow(2, 3), math.Pow10(3)) // 幂
fmt.Println(math.Mod(5, 2), 5%2) // 取模
fmt.Println(math.Sqrt(2), math.Sqrt(3), math.Pow(2, 0.5)) // 开方标准输入Scan
Scan空白字符分割回车提交。换行符当做空白字符
前人经验一定要有空格分隔不要用什么花里胡哨的符合来当做分隔符因为有时候%s string类型是把那些符号作为字符串的当做一个整体
package mainimport fmtfunc main() {var n intvar err errorvar (name stringage int)n, err fmt.Scan(name, age)if err ! nil {panic(err)}fmt.Println(n, name, age)
}面板输入zfl 20输出2 zfl 20如果少一个数据Scan就会阻塞如果输入数据多了等下回Scan读取。例如一次性输入zfl 20 100 只读取前面两个
如果使用短格式已经声明了n err 则再次使用n, err不用声明
func main() {var (name stringage intheigh intwget int)n, err : fmt.Scan(name, age) if err ! nil {panic(err)}fmt.Println(n, name, age)n, err fmt.Scan(heigh, wget) //前面短格式已经声明了不需要在此声明if err ! nil {panic(err)}fmt.Println(n, name, age, heigh, wget)
}
面板输入zfl 20输出2 zfl 20 继续输入
100 174
输出 2 zfl 20 100 174 后面的2 是第二次声明的n如果使用分隔
func main() {var (name stringage intheigh intwget int)n, err : fmt.Scan(name, age) if err ! nil {panic(err)}fmt.Println(n, name, age)
面板输入zfl,20,100,170
20
输出2 zfl,20,100,170 20 因为name为string类型所以,分隔的看做为一个整体的字符串
在面板输入的任何都是string类型通过Scan类型转换为声明的类型想要的类型
Scanf读取输入按照格式匹配解析。如果解析失败立即报错那么就会影响后面的Scanf。
这个和Printf是一样的 只不过这个是按照类型输入
package mainimport fmtfunc main() {var n intvar err errorvar name stringvar age intfmt.Print(Plz input your name and age: )n, err fmt.Scanf(%s %d\n, name, age) // 这里要有\n以匹配回车if err ! nil {panic(err)}fmt.Println(n, name, age)
}控制面板必须按照对应的类型输入不然的话会直接报错的 fmt.Scanf(“%s,%d”, name, age) 中%s会和后面的非空白字符分不清楚用 abc,20 是匹配不上 的因为除空白字符外都可以看做是字符串。所以建议格式字符串中一律使用空格等空白字符分割。