问题描述
小蓝有 30 个数,分别为: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=435种取法。
请问这 435 种取法中,有多少种取法取出的两个数的乘积大于等于 2022 。
#include <stdio.h>
int main()
{
int number[30]={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 min=2022;
int n=0;
for ( int i=0; i<30; i++ )
{
for ( int k=i+1; k<30; k++ )
{
if ( number[i]*number[k] >= min )
{
n++;
}
}
}
printf("%d",n);
return 0;
}