HDOJ 1303 Doubles(简单题)

简介: Problem Description As part of an arithmetic competency program, your students will be given randomly generated lists of from 2 to 15 uniq...

Problem Description
As part of an arithmetic competency program, your students will be given randomly generated lists of from 2 to 15 unique positive integers and asked to determine how many items in each list are twice some other item in the same list. You will need a program to help you with the grading. This program should be able to scan the lists and output the correct answer for each one. For example, given the list
1 4 3 2 9 7 18 22

your program should answer 3, as 2 is twice 1, 4 is twice 2, and 18 is twice 9.

Input
The input file will consist of one or more lists of numbers. There will be one list of numbers per line. Each list will contain from 2 to 15 unique positive integers. No integer will be larger than 99. Each line will be terminated with the integer 0, which is not considered part of the list. A line with the single number -1 will mark the end of the file. The example input below shows 3 separate lists. Some lists may not contain any doubles.

Output
The output will consist of one line per input list, containing a count of the items that are double some other item.

Sample Input
1 4 3 2 9 7 18 22 0
2 4 8 10 0
7 5 11 13 1 3 0
-1

Sample Output
3
2
0

题意:就是判断输入的一行数中,有多少对数字相差2倍。
输入的数据不会有重复的。

import java.util.Scanner;

public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            String strNum = sc.nextLine();
            String[] strsNum = strNum.split(" ");
            int[] num = new int[strsNum.length];
            for(int i=0;i<strsNum.length;i++){
                num[i] = Integer.parseInt(strsNum[i]);
            }
            if(num[0]==-1){
                return ;
            }

            int t=0;
            for(int i=0;i<num.length;i++){
                for(int j=0;j<num.length;j++){
                    if(i!=j){
                        //注意除数不能为0!
                        if(num[j]!=0){
                            double two = (num[i]*1.0)/(1.0*num[j]);
                            if(two==2){
                                t++;
                                break;
                            }
                        }
                    }
                }
            }
            System.out.println(t);
        }
    }

}
目录
相关文章
hdoj 4572 Bottles Arrangement
虽然不知道怎么做,但是AC还是没有问题的。 大概就是循环n次,从m加到m-n/2 除了最后一个数,每个都加两次。
50 0
HDOJ 2802 F(N)
HDOJ 2802 F(N)
109 0
HDOJ 2802 F(N)
|
Java 数据安全/隐私保护
HDOJ 2100 Lovekey
HDOJ 2100 Lovekey
108 0
HDOJ 2033 人见人爱A+B
HDOJ 2033 人见人爱A+B
168 0
HDOJ 1303 Doubles(简单题)
HDOJ 1303 Doubles(简单题)
113 0
HDOJ 2004 成绩转换
HDOJ 2004 成绩转换
106 0
HDOJ 2019 数列有序!
HDOJ 2019 数列有序!
152 0
HDOJ 1214 圆桌会议
Problem Description HDU ACM集训队的队员在暑假集训时经常要讨论自己在做题中遇到的问题.每当面临自己解决不了的问题时,他们就会围坐在一张圆形的桌子旁进行交流,经过大家的讨论后一般没有解决不了的问题,这也只有HDU ACM集训队特有的圆桌会议,有一天你也...
879 0