7-12 h0004.双倍
给出2到15个不同的正整数,计算在这些数里面有多少对数满足一个数是另一个数的两倍。比如给出
1 4 3 2 9 7 18 22
答案是3,因为2是1的两倍,4是2的两倍,18是9的两倍。
输入格式:
输入包括多个测试用例。每个测试用例一行,给出2到15个两两不同且小于100的正整数。每一行最后一个数是0,表示这一行的结束,这个数不属于那2到15个给定的正整数。输入的最后一行仅给出整数-1,这行表示测试用例的输入结束,不用进行处理。
输出格式:
对每个测试用例,输出一行,给出有多少对数满足其中一个数是另一个数的两倍。
输入样例:
1 4 3 2 9 7 18 22 0
2 4 8 10 0
7 5 11 13 1 3 0
-1
输出样例:
3
2
0
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include<bits/stdc++.h>
using namespace std;
int aa[20];
int main(){
int a;
int l=0,h;
while(cin>>a,a!=-1){
if(a==0) {
h=0;
for(int i=0;i<l;i++){
for(int j=0;j<l;j++)
if(aa[i]*2==aa[j]) h++;
}
memset(aa,0,sizeof aa);
cout<<h<<endl;
l=0;
}
else aa[l++]=a;
}
return 0;
}