12!配对
时间: 1ms 内存:64M
描述:
找出输入数据中所有两两相乘的积为12!的个数。
输入:
输入数据中含有一些整数n(1≤n<2^32)。
输出:
输出所有两两相乘的积为12!的个数。
示例输入:
1 10000 159667200 9696 38373635 1000000 479001600 3
示例输出:
2
提示:
参考答案(内存最优[748]):
#include<stdio.h>
int const jie = 479001600;
int main(){
int i = 0 , sum=0 , a[10000] ,j ,k;
while(scanf("%d",&a[i])!=EOF){
if(jie%a[i]==0)
i++;
}
for( j = 0 ; j < i ; j++)
for( k = j+1 ; k < i ; k++){
if(a[j]*a[k]==jie) sum++;
}
printf("%d\n",sum);
return 0 ;
}
参考答案(时间最优[0]):
#include<stdio.h>
long a[1000000]= {0};
int main()
{
long m,r=1,j=0;
int i,n=0;
for(i=1; i<=12; i++)
r*=i;
while(scanf("%ld",&m)!=EOF)
{
if(r%m==0)
{
a[j]=r/m;
for(i=0; i<j; i++)
{
if(a[i]==m)
n++;
break;
}
j++;
}
}
if(n!=0)
printf("%d\n",n+1);
else
printf("%d\n",n);
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。