黑马程序员技术交流社区

标题: 为什么i=i%17 这样就保证了i会在0到16之间了 [打印本页]

作者: 不抛弃不放弃    时间: 2013-11-28 21:07
标题: 为什么i=i%17 这样就保证了i会在0到16之间了
本帖最后由 不抛弃不放弃 于 2013-11-29 01:08 编辑

为什么     i=i%17       这样就保证了i会在0到16之间了
作者: 张天昊76    时间: 2013-11-28 21:25
%符号就相当于取余数的意思
比如说13除以3的余数是1就相当于13%3=1;
和数学有点儿不一样。
作者: 邓伟    时间: 2013-11-28 21:34

很简单. % 是求余数的.
比如说,100%17  其实是算.100/17 = 5 .... 余15.
其实应该是在1与16中 , 包含1,并且包含16
为什么呢,?
因为除法其实是在做减法运算. 如果一个数最后的余数是17的话.那么只是在除法最后的结果上加一.
如果大于的话,比如说是20, 那么其实做的运算是20-17. 最后余三.
同理,最少余1, 不可能是0.
作者: 冯晓骏    时间: 2013-11-28 21:34
一个整数除以17,那么它的余数只能从0-16,一旦余数是17不就代表余数为0么,因为被除数又加上了一倍的17,就成了整除了
作者: 侠客梦的懒猫    时间: 2013-11-28 22:25
最简单的就是拿19个数据测试一下不就知道了,0,1,2......18,
0%17=0,1%17=1............16%17=16,17%17=0(从这开始重复)。。。。
作者: 杨增坤    时间: 2013-11-28 22:33
i=n%17;求的是余数,一个数除以17,那么余数可能是0~16,如果是17的话,那么就是0,所以只能是0~16.
希望对你有帮助!





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2