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("結束");
}
}
鏈結到這頁!