如果两个数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有3对 ,4和 2 有1对,共有5对双倍对
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,a[1005],s = 0;
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]*2==a[j] || a[j]*2==a[i]) s++;
}
}
cout << s;
return 0;
}
好了,这期题目讲解到此结束,请给我一个点赞、关注、评论,谢谢。