Hashmat the brave warrior
Input: standard input
Output: standard output
Hashmat is a brave warrior who with his group of young soldiers moves from one place to another to fight against his opponents. Before fighting he just calculates one thing, the difference between his soldier number and the opponent's soldier number. From this difference he decides whether to fight or not. Hashmat's soldier number is never greater than his opponent.
Input
The input contains two integer numbers in every line. These two numbers in each line denotes the number of soldiers in Hashmat's army and his opponent's army or vice versa. The input numbers are not greater than 2^32. Input is terminated by End of File.
Output
For each line of input, print the difference of number of soldiers between Hashmat's army and his opponent's army. Each output should be in seperate line.
Sample Input:
10 1210 14
100 200
Sample Output:
2
4
100
看起来是超级水题,但是也WA了几次才过。为什么呢?
First,The input numbers are not greater than 2^32。很容易误导人用int类型,但是int类型是2^31-1,所以也可能溢出的。
Second, or vice versa. 题意那里说了他的number永远不会比对手的大,但是输入那里却说反之亦然,细心!
下面是代码:
#include<stdio.h>
int main()
{
long long n,m;
while(scanf("%lld%lld",&m,&n)!=EOF)
{
if(n>=m)
printf("%lld\n",n-m);
else
printf("%lld\n",m-n);
}
return 0;
}