佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1358|回复: 2

不懂问题出在哪里

[复制链接]
发表于 24-10-2010 10:05 PM | 显示全部楼层 |阅读模式
题目要求当last number 10,
当user打1 2 4 7 4 4 5 10 8 2
会出现
Duplicate 2 (2 times)
Missing 3
Duplicate 4 (3 times)
Missing 6
Missing 9

可是我的答案一直少了
Duplicate 4 (3 times)
不懂那里出错了

import java.util.Scanner;

public class ARRAYTEST {
        public static void main(String[] args) {

                //part1 input last number and get correct sequence array
                Scanner scanner = new Scanner(System.in);
                System.out.print("Please enter last number:");
                int input = scanner.nextInt();
                int[] correct = new int [input];
                for(int i=0;i<correct.length;i++)
                        correct[i]=i+1;

                //part2 get input sequence from user
                int[]inputArray = new int [input];
                System.out.println("Please enter ur input Max for "+input+" try only:");
                for(int i=0;i<inputArray.length;i++){
                        inputArray[i] = scanner.nextInt();
                        if (inputArray[i]==0)
                                break;
                }

                //array for occurence of each number
                int [] exist = new int[input];

                //comparison between 2 array
                for(int x=0;x<correct.length;x++)
                        for(int y =inputArray.length-1;y>=0;y--)
                        if(correct[x]==inputArray[y]){
                                exist[x]++;
                                continue;
                        }


                int perfect = 0;
                //check duplicate and missing and perfect
                for(int i=0;i<correct.length;i++){
                        //System.out.println((i+1)+" "+exist[i]);
                        if(exist[i]==i)
                                perfect++;
                        else if(exist[i]>1)
                                System.out.println("Duplicate "+(i+1)+" ("+exist[i]+" times)");
                        else if(exist[i]<1)
                                System.out.println("Missing "+(i+1));

                }

                if (perfect==correct.length)
                        System.out.println("Nothing bad");
        }
}
回复

使用道具 举报


ADVERTISEMENT

发表于 25-10-2010 01:22 AM | 显示全部楼层
  1.                         
  2. if(exist[i]==i){
  3.        perfect++;
  4.         System.out.println(exist[i]+" "+i);
  5. }
复制代码
index for number 4 = 3
occurrence = 3
if(exist==i){ << 逻辑错误, 这里就不多说了
回复

使用道具 举报

 楼主| 发表于 25-10-2010 10:15 AM | 显示全部楼层
thanks
if(exist==i)
1 type till i
really appreciate
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 17-11-2025 08:55 PM , Processed in 0.124698 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表