練習 - Doubles

Doubles

題目:列出多個不同的正整數,計算在這些數裡面有多少資料對滿足一個數是另一個數的兩倍。

輸入:一行輸入一個正整數,輸入0代表結束一組的輸入,輸入-1代表結束程式

輸出:對每一組輸入後列出有多少個數對滿足其中一個數是另一個數的兩倍。

import java.util.Scanner;


public class Doubles {

	public static void main(String[] args) {
		int i, j, n, count, a[] = new int[20]; //宣告整型變數i、j、n、count和整型陣列a
		Scanner scanIn = new Scanner(System.in); //輸入第1組的第一個資料
		a[0] = scanIn.nextInt();
		while(a[0] != -1) { //若輸入不為-1即未結束,則輸入新一組資料
        		n = 1; //讀入目前資料組
        		for( ; ; n++) {
        			scanIn = new Scanner(System.in);
        			a[n] = scanIn.nextInt();
        			if(a[n] == 0) break;
        		}
        		count = 0; //處理;計算目前資料組裡有多少資料對滿足一個數是另一個數的兩倍
        		for(i = 0; i < n-1; i++) { //列舉所有資料對
        			for(j = i+1; j < n; j++) {
        				if(a[i]*2 == a[j] || a[j]*2 == a[i]) //若目前資料對滿足2倍關係,則累計
        					count++;
        			}
        		}
        		System.out.println("組數: " + count); //輸出目前資料組裡滿足2倍關係的資料對數
        		scanIn = new Scanner(System.in); //輸入下一組的第一個資料
        		a[0] = scanIn.nextInt();
		}
		System.out.println("結束");
	}

}

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

*

驗證碼 * Time limit is exhausted. Please reload CAPTCHA.

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料