J:寻找配对数
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
-
在给定的n个互不相等的正整数中,寻找可以形成a*b=c的等式(a,b,c互不相等)的数目。比如在12,32,6,1,2,8,4中,只有2*4=8, 2*6=12, 4*8=32三对。
注意:给出的正整数互不相同。正整数的最大值为2^32-1,正整数的最大个数为1000.
- 输入
- 第一行输入总共的正整数数目n(n<=1000)
接下来的一行输入n个正整数,正整数之间用一个空格隔开。 - 输出
- 输出其中满足a*b=c等式的数目。
- 样例输入
-
7 8 6 3 4 10 5 2
- 样例输出
-
3
1 #include <iostream> 2 using namespace std; 3 int main() 4 { 5 int n,count=0; 6 long long a[1001]; 7 cin >> n; 8 for (int i=0;i<n;++i) 9 { 10 cin >> a[i]; 11 } 12 for (int i=0;i<n;++i) 13 { 14 for (int j=i+1;j<n;++j) 15 { 16 for (int m =j+1; m < n; ++m) 17 { 18 if (a[i] * a[j] == a[m]||a[i]*a[m]==a[j]||a[m]*a[j]==a[i]) 19 { 20 count++; 21 } 22 } 23 } 24 } 25 cout << count; 26 return 0; 27 }
1 #include <iostream> 2 using namespace std; 3 int main() 4 { 5 int n,k,x,j; 6 int a[100000]; 7 k = 0; 8 cin >> n; 9 for(int i = 0; i < n; i++) 10 cin >> a[i]; 11 for(int i = 0; i < n; i++) 12 { 13 for(int b = i + 1; b < n; b++) 14 { 15 j = a[i] * a[b]; 16 for(int l = 0; l < n; l++) 17 { 18 if(j == a[l] && j != a[i] && j != a[b]) 19 { 20 k++; 21 } 22 } 23 } 24 } 25 cout << k << endl; 26 return 0; 27 }
道阻且长,行则将至

浙公网安备 33010602011771号