[编程题] 小易的升级之路
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
List<Integer> list = new LinkedList<Integer>();
while (in.hasNextInt()) {
int Number = in.nextInt();
int InitBeat = in.nextInt();
for (int i = 0; i < Number; i++) {
int tmp = in.nextInt();
list.add(tmp);
}
for (int i = 0; i < list.size(); i++) {
if (InitBeat >= list.get(i)) {
InitBeat += list.get(i);
} else {
InitBeat += divisor(list.get(i), InitBeat);
}
}
BigDecimal dec = new BigDecimal(InitBeat);
System.out.println(dec);
for(int i=0;i<list.size(); i++)
{
list.remove(i);
}
}
in.close();
}
public static int divisor(int m, int n) {
int i = m > n ? n : m;
for (; i > 0; i--) {
if (m % i == 0 && n % i == 0) {
break;
}
}
return i;
}
}
import java.math.BigInteger;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
List<Integer> list = new LinkedList<Integer>();
while (in.hasNextInt()) {
int Number = in.nextInt();
int InitBeat = in.nextInt();
for (int i = 0; i < Number; i++) {
int tmp = in.nextInt();
list.add(tmp);
}
for (int i = 0; i < list.size(); i++) {
if (InitBeat >= list.get(i)) {
InitBeat += list.get(i);
} else {
InitBeat += divisor(list.get(i), InitBeat);
}
}
BigDecimal dec = new BigDecimal(InitBeat);
System.out.println(dec);
for(int i=0;i<list.size(); i++)
{
list.remove(i);
}
}
in.close();
}
public static int divisor(int m, int n) {
int i = m > n ? n : m;
for (; i > 0; i--) {
if (m % i == 0 && n % i == 0) {
break;
}
}
return i;
}
}
为什么用到链表会一个测试样例都过不了,case为0.00%如果简单比较两个数就全过了。。。