姓名:公鹏飞
用时:1小时30分钟
第一题
源代码
#include <stdio.h>
#include <stdlib.h>
int main()
{
intx,y,m,n,L;
int t=0;
scanf("%d %d %d %d %d",&x,&y,&m,&n,&L);
if((m-n)%L==0)//两只青蛙之间的距离不变,不可能碰到
{
printf("Impossible.\n");
return 0;
}
while((x+m*t)%L!=(y+n*t)%L)
t++;
printf("%d\n",t);
return 0;
}
第二题
源代码
#include <stdio.h>
#include <stdlib.h>
int A(int n){
if(n==1)
return 1;
else
return n*A(n-1);
}
int main()
{
intm,*a,i,n[26]={0},j=0,fm=0,fz=1;
scanf("%d",&m);
while(m!=0)
{
a=(int*)malloc(m*sizeof(int));
for(i=0;i<m;i++)
scanf("%d",&a[i]);
for(i=0;i<m;i++)
fm+=a[i];
fm=A(fm);
for(i=0;i<m;i++)
fz*=A(a[i]);
n[j]=fm/fz;//将全部字母全排列除以每种字母全排列
j++;
scanf("%d",&m);
fm=0;
fz=1;
}
for(i=0;i<j;i++)
printf("%d\n",n[i]);
return 0;
}
第三题
源代码
#include <stdio.h>
#include <stdlib.h>
int p[3]= {150,200,350};
int ans[100]= {0};
int money[100]= {0};
int mod(int money)
{
int a[3]={0},i,j;
for(i=0;i<3; i++)
a[i]=money%p[i];
a[1]=a[1]%p[0];
if(a[2]%p[0]>a[2]%p[1])
a[2]=a[2]%p[1];
else
a[2]=a[2]%p[0];
for(j=a[0],i=0; i<3; i++)
if(a[i]<j)
j=a[i];
return j;
}
int main()
{
int T,i;
scanf("%d",&T);
for(i=0;i<T; i++)
scanf("%d",&money[i]);
for(i=0;i<T;i++)
{
ans[i]=mod(money[i]);
printf("%d\n",ans[i]);
}
return 0;
}