UVA 10055
#include <stdio.h>
#include <math.h>
int main()
{
long long left, right;
while (scanf("%lld%lld", &left, &right) != EOF)
{
printf("%lld\n", (right>left)?(right-left):(left-right));
}
return 0;
}
Analysis:
这个题特别的奇怪,陷阱有两个,
①. 题目中说是Hashmat's soldier number is never greater than his opponent.但是Input中却说vice versa并没有说输入的两个数谁先谁后,因此,需要判断一下,要注意的是最后的结果都是positive的。
②. 第二个陷阱在于输入的数字,不超过2^32。int最大是2^31 - 1,而用unsigned依然会超。
因为unsigned最大是2^32 - 1,仍然放不下2^32……
所以这题的数据类型得定义成long long。
浙公网安备 33010602011771号