java-帮助尝试了解循环数组中的模运算
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-帮助尝试了解循环数组中的模运算,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1185字,纯文字阅读大概需要2分钟。
内容图文
![java-帮助尝试了解循环数组中的模运算](/upload/InfoBanner/zyjiaocheng/673/bb4a47740f254154bf961d76aec26e8e.jpg)
我有一个小问题,试图弄清楚如何计算模运算.
我正在建立一个队列,所以我有一个循环数组.
我无法弄清楚这种模运算的工作原理.
给定q:长度为5个元素的Character数组,
MAX常数给出数组“ 5”的最大长度
罕见的是一个int,它表示数组q中的第一个可用点
public void enqueue(Character c)throws FullQueueException{
if(size()== MAX -1){ //if only 1 place left, is full, throw exc
throw new FullQueueException("Queue is full");
}
q[rare]=c;
rare=(rare+1)%MAX;
}
现在,假设稀有的“第一个空白点”是3,方法完成后稀有值是多少?
这是我没有得到的,稀有=(稀有1)%MAX意味着稀有= 4%5,这使稀有= 0.8.
方法大小相同:
public int size() {
return (MAX - front + rear) % MAX;
}
给定,front,一个int变量,表示数组中的第一个元素
假设front是1且稀有4,所以数组中有3个元素,所以大小是(5-1 4)%5,即8%5,得出1.6,而实际大小是3
有什么建议吗?这可能比Java多了一些数学运算,但也许你们中的一些人之前也遇到过同样的疑问.
谢谢!
解决方法:
我认为您对模运算的功能有些困惑.它给出除法后的整数余数.所以从你的例子.
4%5 = 4(因为4/5为0,余数为4)
和
8%5 = 3(因为8/5为1,其余为3)
在未看到实现的其余部分的情况下,很难进一步解释为什么使用模数,但是看起来基本上是在使用它来确保循环数组环绕.即,当您到达数组的末尾时(例如,MAX大小为8的数组的索引7,您想要的下一个值将是第一个元素,即8%8或0).
内容总结
以上是互联网集市为您收集整理的java-帮助尝试了解循环数组中的模运算全部内容,希望文章能够帮你解决java-帮助尝试了解循环数组中的模运算所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。