|
查看: 1360|回复: 2
|
不懂问题出在哪里
[复制链接]
|
|
|
题目要求当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");
}
} |
|
|
|
|
|
|
|
|
|
|
发表于 25-10-2010 01:22 AM
|
显示全部楼层
-
- if(exist[i]==i){
- perfect++;
- System.out.println(exist[i]+" "+i);
- }
复制代码 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 |
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|