给定2到15个不同的正整数,你的任务是计算这些数里面有多少个数对满足:数对中一个数是另一个数的两倍。
比如给定1 4 3 2 9 7 18 22,得到的答案是3,因为2是1的两倍,4是2个两倍,18是9的两倍。
Input
一行,给出2到15个两两不同且小于100的正整数。最后用0表示输入结束。
Output
一个整数,即有多少个数对满足其中一个数是另一个数的两倍。
Sample
Inputcopy | Outputcopy |
---|---|
1 4 3 2 9 7 18 22 0 |
3 |
//
#include<bits/stdc++.h>
using namespace std;
int main()
{
vector<int> v;
int n,i,j,ans;
while( cin>>n && n )
{
v.push_back( n );
}
sort( v.begin(),v.end() );
vector<bool> used( v.size(),0 );
ans=0;
for( i=0;i<v.size();i++ )
for( j=i+1;j<v.size();j++ )
{
if( used[j] ) continue;
if( v[j]==v[i]*2 )
{
used[j]=1; ans++; break;
}
}
cout<<ans<<endl;
return 0;
}