没料到答案出的这么快
英语不好还想学编程??逆天之路,不由分说!! 数学太差还想学编程??离经叛道,义无返顾!!
这次题目果然简单,第一题几分钟就可以搞定,明天回来再做第二题
#include "stdio.h"
main()
{
long x,y,m,n,L;
long a,b;
int i=0,flag=0;
int Judge(long x,long y,long m,long n,long L);
do{
printf("Input x,y,m,n,L:\n");
scanf("%ld,%ld,%ld,%ld,%ld",&x,&y,&m,&n,&L);
}while(Judge(x,y,m,n,L)==0);
a=x;
b=y;
while(flag==0)
{
i++;
a=(a+m)%L;
b=(b+n)%L;
if(a==b)
flag=1;
if(a==x && b==y)
flag=2;
}
if(flag==1)
printf("The times is %d\n",i);
else if(flag==2)
printf("Impossible!\n");
}
int Judge(long x,long y,long m,long n,long L)/*首先没有必要检查数据是否合法,测试数据都是合法的*/
{
int r=1;
if(x==y)
{
printf("Two frogs are not at a place!(x!=y) Another input please!\n");
r=0;
}
else if(x>=2000000000 || y>=2000000000 || m>=2000000000 || n>=2000000000)
{
printf("Invalid input! Another input please!\n");
r=0;
}
else if(x<=0 || y<=0 || m<=0 || n<=0)
{
printf("Invalid input! Another input please!\n");
r=0;
}
else if(L<=0 || L>=2100000000)
{
printf("Invalid input! Another input please!\n");
r=0;
}
else if(x>L || y>L)
{
printf("Invalid input! Another input please!\n");
r=0;
}
return r;
}
看来我是把这题想简单了,难点还是在如何判断不能见面的情况,还得好好想想!
9楼的哥们:/*如果m,n的小公倍是L的约数或L的倍数就意味着无解*/ 能解释一下么?
[此贴子已经被作者于2007-4-13 20:10:52编辑过]
看来我是把这题想简单了,难点还是在如何判断不能见面的情况,还得好好想想!
9楼的哥们:/*如果m,n的小公倍是L的约数或L的倍数就意味着无解*/ 能解释一下么?
[此贴子已经被作者于2007-4-13 21:14:19编辑过]