总时间限制:
1000ms
内存限制:
65536kB
描述
给定2到15个不同的正整数,你的任务是计算这些数里面有多少个数对满足:数对中一个数是另一个数的两倍。
比如给定1 4 3 2 9 7 18 22,得到的答案是3,因为2是1的两倍,4是2个两倍,18是9的两倍。
输入
一行,给出2到15个两两不同且小于100的正整数。最后用0表示输入结束。
输出
一个整数,即有多少个数对满足其中一个数是另一个数的两倍。
样例输入
1 4 3 2 9 7 18 22 0
样例输出
3
来源
翻译自Mid-Central USA 2003的试题
import java.util.ArrayList;
import java.util.Scanner;
public class OpenJudge2807 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList<Integer> list = new ArrayList<Integer>();
while (scanner.hasNext()) {
int temp = scanner.nextInt();
if (temp == 0) {
break;
}
list.add(temp);
}
int count = 0;
for (int i = 0; i < list.size(); i++) {
int a = list.get(i);
if (a % 2 != 0) {
continue;
}
for (int j = 0; j < list.size(); j++) {
if (j != i && list.get(i) == list.get(j) * 2) {
count++;
break;
}
}
}
scanner.close();
System.out.println(count);
}
}