10055 - Hashmat the Brave Warrior

第一次玩UVa, 提交了N次都没有AC, 实在不行了, 网上找了答案, 发现是自己把问题想复杂了. 或者说是没有经验, 未能发现其中的陷阱, 导致总是 runtime error.

 

主要注意两点:

1. or vice versa.

这句话的意思是输入的两个数里包含 Hashmat's army 和 his opponent's army 的个数, 但是顺序是不固定的, 题目中的 Hashmat's soldier number is never greater than his opponent. 表明 Hashmat 的士兵数总是少的一方.

2. The input numbers are not greater than 2^32.

说明用 int 是不行的, unsigned int 也不行, 要使用 long

 

理解了上面两点, 代码就很容易写出来了.

题目:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=94&page=show_problem&problem=996

代码:

#include <stdio.h>

int main(){

    long int  a, b;
    
    while(EOF != scanf("%ld%ld", &a, &b)){
        printf("%ld\n", a>b ? a-b : b-a);
    }

    return 0;
}

注: 发现 C 语言里有 abs(), labs(), fabs() 函数是可以取绝对值.

 

环境:ANSI C 4.5.3 - GNU C Compiler with options: -lm -lcrypt -O2 -pipe -ansi -DONLINE_JUDGE

你可能感兴趣的:(uva,10055)