标签:
1 2 3 4 5
4
计算每一步两只青蛙的差值和初始时的差值,然后算出第i步,若差值能被l整除输出i步。(还有个扩展欧几里德解法,但是我不会)
欧几里德
1 #include<cstdio> 2 #include<cmath> 3 using namespace std; 4 int main() 5 { 6 long long x,y,m,n,l,s,i,sum; 7 while(scanf("%lld %lld %lld %lld %lld",&x,&y,&m,&n,&l)!=EOF) 8 { 9 s=0; 10 for(i=1;i<1e6;i++) 11 { 12 if((x>y && m>n) || (x<y && m<n)) 13 { 14 sum=abs(m-n)*i+abs(x-y); 15 } 16 else 17 { 18 sum=abs(m-n)*i-abs(x-y); 19 } 20 if(sum % l == 0) 21 { 22 s=i; 23 break; 24 } 25 } 26 if(s) 27 { 28 printf("%lld\n",s); 29 } 30 else 31 { 32 printf("Impossible"); 33 } 34 } 35 }
标签:
原文地址:http://www.cnblogs.com/yexiaozi/p/5723863.html