枚举及优化(双倍对)
题目描述
如果两个数 a , b ,只要 a = 2×b 或者 b = 2×a 成立,那么就说这两个数是双倍对。例如 : a=1 , b=2 ,那么 a 和 b 这两个数是一对双倍对。现在给出一组数,请计算一下里面有多少对是双倍对。由于数据量比较大,请你用程序来实现自动计算吧。
输入格式
输入数据共有两行
-
第一行有一个整数 N ,表示这组数的个数。
-
第二行有 N 个正整数。
数据范围
100% 的数据: 1 ≤ N ≤ 1000 , 1 ≤ a_iai ≤ 1000000 。
输出格式
输出 N 个数中有多少对是双倍对。
样例
输入数据 1
6
5 2 4 2 10 4
Copy
输出数据 1
5
Copy
样例解释
其中: 5 和 10 有 1 对, 2 和 4 有 3 对, 4 和 2 有 1 对,共有 5 对双倍对。
代码:
#include<bits/stdc++.h>
using namespace std;
int n,a[1001],s;
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]*2==a[j]||a[j]*2==a[i])s++;
}
}cout<<s;
return 0;
}
原文地址:https://blog.csdn.net/2301_76412443/article/details/144025093
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!