北大ACM1061题,题目在这http://poj.org/problem?id=1061,为什么下面的代码提示说wrong answer。

//算法:主要是先固定一个走的慢的青蛙,//让其不动,另一个青蛙移动他们之间的相对位移#include<stdio.h>intmain(){inti;intdif;int... //算法:主要是先固定一个走的慢的青蛙,
//让其不动,另一个 青蛙移动他们之间的相对位移
#include<stdio.h>
int main()
{
int i;
int dif;
int d;
int x,y,m,n,l;
scanf("%d%d%d%d%d",&x,&y,&m,&n,&l);
//dif = m>n ? (m-n):(n-m);
if(m>n) //因为是固定x不动,而y向前移动的,所以如果x移动 速度比y快的话将两个相换
{
dif = m-n;
i=x;
x=y;
y=i;
}
else
{
dif = n -m;
}
i=1;
d = x-y ; //开始 时相差步数
do
{
if((y=y+dif)>l)
{
y = y-l;
}
if(x == y)
{
printf("%d",i);
return 0;
}
i=i+1;

}while(d!=x-y);
printf("Impossible");
}
请告诉我怎么改,只要能AC就给分。(不需要在其它地方复制一个过来)
展开
 我来答
BlueWanderer
2011-03-29 · TA获得超过9209个赞
知道大有可为答主
回答量:5673
采纳率:83%
帮助的人:1988万
展开全部
你能不能告诉我你的答案里为什么会出现循环...
追问
意思是如果他们之间差的步数,如果差的步数又与初始状态步数相等,那么他们就不可能会相遇。
追答
(nL + x - y) mod (m - n) = 0 这是个余数问题
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式