自学遇到不懂就问
X == (x//y)*y+(x%y)怎么用比较好的表达去解释这一个公式呢? x==x 或 True 都可以 假设: x = 104 y = 10x = 104 ; y = 10
# 先看(x//y)*y
>>> x // y = 10
# // 地板除法,不要小数的
>>> 10 * y = 100
# 下面是 (x%y) 求 x 除以 y 的余数
>>> 104 % 10 = 4
# 最后
>>> 100 + 4 = 104 # 我们发现就是等于x本身
所以可以直接写成 x == x Twilight6 发表于 2020-5-15 21:48
假设: x = 104 y = 10
所以直接写成 True 就好了 永恒的蓝色梦想 发表于 2020-5-15 22:03
所以直接写成 True 就好了
! ! ! !对 嗷 {:10_278:} 假设 x = 1, y = 2 :
x == (x // y) * y + (x % y)
也就是:
1 == (1 // 2) * 2 + (1 % 2)
地板除法只保留商,截断小数部分,所以 1 // 2 等于 0 :
1 == 0 * 2 + (1 % 2)
% 是取余数,1 除以 2 的余数是 1,所以 1 % 2 等于 1:
1 == 0 * 2 + 1
0 * 2 == 0 :
1 == 0 + 1
0 + 1 == 1 :
1 == 1
所以这个表达式可以简化为:
x == x {:10_266:}懂了懂了,感谢大佬,也就是地板除那里是往下取,感谢思密达
页:
[1]