标签:
1 #include <stdio.h> 2 #include <math.h> 3 #include <stdlib.h> 4 int gcd(int a,int b) 5 { 6 int r; 7 if(a<b) {r=a;a=b;b=r;} 8 while(a%b!=0) 9 {r=a%b;a=b;b=r;} 10 return b; 11 } 12 int main() 13 { 14 int a,b,x,y,m,n,t,s=0; 15 scanf("%d %d",&a,&b); 16 scanf("%d %d",&x,&y); 17 m=abs(x-a); 18 n=abs(y-b); 19 if(m!=0&&n!=0) 20 { 21 t=gcd(m,n); 22 s=m+n-t; 23 } 24 printf("%d",s); 25 return 0; 26 }
画图找规律可知sum=m+n-(m与n的最大公约数)
9505 射了多少时间限制:1000MS 内存限制:65535K 题型: 编程题 语言: G++;GCC
Description 大家都知道CS中的AWP可以一枪KO人家,最爽的就是没看到别人,但知道人家在墙后而一枪穿墙爆头击毙.
现在把CS地图定义为一个二维空间,你的位置在(x0,y0),你不知道敌人的位置(除非有间谍),因此你想尽可能多的穿过地图上的格子.
但你不知道如何计算当他射向点(x1,y1)(到x1,y1停下来)的时候穿过了多少个格子,因此希望你这个强大的programmer帮忙
输入格式输入中一共有两行 第一行是2个整数表示你的位置x0,y0(1000>=x0,y0>=0) 第二行是2个整数表示子弹停下的位置x1,y1(1000>=x1,y1>=0) 输出格式输出只有一行 穿过的格子数(碰到不算穿过任何格子,要严格穿过)
输入样例0 0 2 2
输出样例2
来源ick2
作者a470086609 |
标签:
原文地址:http://www.cnblogs.com/kevensusu/p/4992649.html