第3题 双倍对 查看测评数据信息
如果两个数a,b,只要a=2*b或者b=2*a成立,那么就说这两个数是“双倍对”。例如:a=1,b=2,那么a和b这两个数是一对双倍对。现在给出一组数,请计算一下里面有多少对是“双倍对”。由于数据量比较大,请你用程序来实现自动计算吧。
输入格式
输入数据共有两行
第一行有一个整数N,表示这组数的个数。
第二行有N个正整数。
100%的数据 1≤N ≤1000 , 1≤ai≤1000000 。
输出格式
输出N个数中有多少对是“双倍对”。
输入/输出例子1
输入:
6
5 2 4 2 10 4
输出:
5
样例解释
其中:5和 10有1对, 2 和4有4对 ,共有5对双倍对。
ac
#include<bits/stdc++.h>
using namespace std;
int n,m,a[1000005];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
if(a[i]==a[j]*2||a[j]==a[i]*2){
m++;
}
}
}
cout<<m;
return 0;
}