您的位置:首页 > 其它

9505 射了多少

2015-11-24 19:35 288 查看
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int gcd(int a,int b)
{
int r;
if(a<b) {r=a;a=b;b=r;}
while(a%b!=0)
{r=a%b;a=b;b=r;}
return b;
}
int main()
{
int a,b,x,y,m,n,t,s=0;
scanf("%d %d",&a,&b);
scanf("%d %d",&x,&y);
m=abs(x-a);
n=abs(y-b);
if(m!=0&&n!=0)
{
t=gcd(m,n);
s=m+n-t;
}
printf("%d",s);
return 0;
}


View Code
画图找规律可知sum=m+n-(m与n的最大公约数)

9505 射了多少

时间限制:1000MS 内存限制:65535K
提交次数:676 通过次数:107

题型: 编程题 语言: 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: