【发布时间】:2016-10-31 17:52:27
【问题描述】:
public static void main(String args[])
{
ArrayList <Integer> seq = new ArrayList<Integer>();
Scanner kbReader = new Scanner(System.in);
int iterations = 0;
System.out.println("Enter a number sequence(no spaces, only commas)");
String j = kbReader.nextLine();
kbReader = new Scanner(j);
kbReader.useDelimiter("\\D");
//adds input to array list
while(kbReader.hasNextInt())
{
int i = kbReader.nextInt();
seq.add(i);
}
while(seq.size() > 0)
{
//removes zeros and numbers behind
if(seq.contains(0))
{
int zeroSearch = seq.lastIndexOf(0);
for(int c = zeroSearch; c >= 0; c--)
{
seq.remove(c);
}
iterations++;
}
//number operations
int largest = Collections.max(seq);
int largeLoc = seq.lastIndexOf(largest);
if(largest % 2 == 0)
{
largest = largest -2;
iterations++;
}
else
{
largest--;
iterations++;
}
seq.set(largeLoc, largest);
}
System.out.println(iterations + "moves" required);
}
由于某种原因,max 方法在此循环中不起作用并返回错误“java.util.NoSuchElementException”。方向读取“给定一个数列,删除所有的零,如果有的话,以及它们左边的所有数字。然后找到最大的剩余数字,如果是偶数则减去 2,或者如果是奇数则减去 1从它。如果两个或多个数字成为并列最大数字,则使用最右边的数字作为最大数字。重复将规则应用于序列。删除序列需要多少步?"
【问题讨论】:
-
java 文档说“抛出:NoSuchElementException - 如果集合为空”。 docs.oracle.com/javase/7/docs/api/java/util/…
-
javadoc 声明“NoSuchElementException - 如果集合为空”。我猜它是空的。
标签: java loops arraylist collections