C/C++ 演算法分析與設計:列舉(二倍的問題)
阿新 • • 發佈:2018-12-14
題目描述
給定2到15個不同的正整數,你的任務是計算這些數裡面有多少個數對滿足:數對中一個數是另一個數的兩倍。比如給定1 4 3 2 9 7 18 22,得到的答案是3,因為2是1的兩倍,4是2個兩倍,18是9的兩倍。
輸入
輸入包括n組測試資料。每組資料包括一行,給出2到15個兩兩不同且小於100的正整數。每一行最後一個數是0,表示這一行的結束後,這個數不屬於那2到15個給定的正整數。
輸出
對每組輸入資料,輸出一行,給出有多少個數對滿足其中一個數是另一個數的兩倍。
樣例輸入
2 2 4 8 10 0 7 5 11 13 1 3 0
樣例輸出
2 0
#include<stdio.h> int main() { int n; scanf("%d",&n); while(n--) { int x,i=0,j,k,a[15],*p,t=0; while(scanf("%d",&x)!=EOF) { if(x==0) break; a[i++]=x; } for(j=0;j<=i;j++) { p=&a[j]; for(k=0;k<=i;k++) if((*p)*2==a[k]) t++; } printf("%d\n",t); } }