题目
小蓝有 3030 个数,分别为:99, 22, 51, 63, 72, 61, 20, 88, 40, 21, 63, 30, 11, 18, 99, 12, 93, 16, 7, 53, 64, 9, 28, 84, 34, 96, 52, 82, 51, 77 。
小蓝可以在这些数中取出两个序号不同的数,共有 30×29/2=43530×29/2=435 种取法。
请问这 435435 种取法中,有多少种取法取出的两个数的乘积大于等于 20222022 。
题解
抽取两个数,第一次从30个数里抽一个数,第二次从剩下的29个数里抽一个数,可得3029个组合,组合/2=取法=3029/2;例如第一次取99,第二次取52和第一次取52和第二次取99算同一种取法,所以要记得除以2 请在此处填写你的解题思路
代码
#include <iostream>
using namespace std;
int arr[]={99, 22, 51, 63, 72, 61, 20, 88, 40, 21, 63, 30, 11, 18, 99, 12, 93, 16, 7, 53, 64, 9, 28, 84, 34, 96, 52, 82, 51, 77 };
int main()
{
// 请在此输入您的代码
int cnt=0;
for(int i=0;i<30;i++){
for(int j=0;j<30;j++){
if(i!=j)
if(arr[i]*arr[j]>=2022)
cnt++;
}
}
cout<<cnt/2;
return 0;
}
感谢老铁支持!