首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不正确的阵列校正

不正确的阵列校正
EN

Stack Overflow用户
提问于 2017-06-30 03:15:44
回答 3查看 286关注 0票数 0

所以我们遇到了一个问题,就是这样的:

编写一个模拟邮递员在翻转邮箱中进行实验的程序。翻转意味着打开邮箱时打开邮箱,打开邮箱时关闭邮箱。有100个被编号为1到100的邮箱,它们都是最初关闭的。 在第一步中,他访问每个邮箱(即邮箱1、2、3、…、100),将它们全部翻转。然后,在第二步,访问每两个邮箱(即邮箱2,4,6,…,100),他翻转它们。然后,在第三步,访问每三个邮箱(即邮箱3,6,9,…,99),他翻转它们。以这种方式,他以4、5、.、10、...,50和最后100步的方式,直接进入第100个邮箱并翻转它。在此过程结束时,哪些邮箱是打开的?

因此,我继续制作了一个程序,使用嵌套的for-循环来做翻转实验:

代码语言:javascript
复制
    public class MailManProblem{
        public static void main(String args[]){
            boolean mailbox[] = new boolean[101];
            int i,j,k,l;

            for(i=1;i<101;i++){
                for(j=i;j<mailbox.length;j+=i){
                    mailbox[j]=!mailbox[j];
                }
            }

            System.out.print("\nOpen Mailboxes \n");
            for(k=1;k<mailbox.length;k++){
                if(mailbox[k]==true)
                    System.out.print(k + " " );
                else
                    continue;
            }
            System.out.print("\n\n");

        }
    }

我认为一切都很好,因为它打印出了正确的输出,但我的教练告诉我,我使用了“错误的数组大小”。我不太明白那是什么意思。我没有办法联系我的指导员自动取款机,所以我想知道我是否能得到一些帮助来修复这个“错误的阵列大小”错误。

EN

回答 3

Stack Overflow用户

发布于 2017-06-30 03:21:15

也许你的老师打算用从0到99的数组索引,而不是1到100 (尽管最初的问题的措辞),只是认为你的数组中有一个额外的元素?

票数 0
EN

Stack Overflow用户

发布于 2017-06-30 03:23:07

您已经创建了大小为101的数组元素,但不使用元素0。

代码语言:javascript
复制
boolean mailbox[] = new boolean[101];

您应该创建的大小仅为100。

代码语言:javascript
复制
boolean mailbox[] = new boolean[100];

然后循环从元素0(第一个元素)到99 (第100位)。

代码语言:javascript
复制
for(i=0;i<mailbox.length;i++)

但是,当您打印索引时,添加一个索引,将其更正回1到100范围,这是人类喜欢的范围,而不是计算机喜欢的0相对索引。

代码语言:javascript
复制
System.out.print((k+1) + " " );

别忘了调整回路范围.

代码语言:javascript
复制
for(k=0;k<mailbox.length;k++)
票数 0
EN

Stack Overflow用户

发布于 2017-06-30 03:23:39

数组的大小应该是100而不是101。另外,您还需要更改for循环,使其从0开始,而不是从1开始。因此,条件将更改为i < 100

目前,您没有使用数组的第一个元素,因为您是在i = 1开始循环的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44838034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档