码迷,mamicode.com
首页 > 其他好文 > 详细

9505 射了多少

时间:2015-11-24 20:31:06      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:

技术分享
 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 }
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

 

9505 射了多少

标签:

原文地址:http://www.cnblogs.com/kevensusu/p/4992649.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!