|
发表于 2009-7-13 13:06:44
|
显示全部楼层
追求效率的话就用 C 吧- /* gcc a.c && ./a.out < input.txt > output.txt */
- #include <stdio.h>
- int main(void)
- {
- int x;
- if (scanf("%d", &x) != EOF)
- printf("%04hx", (short) x);
- while (scanf("%d", &x) != EOF)
- printf(" %04hx", (short) x);
- return 0;
- }
复制代码 一开始的 if () 那一段是针对空格的特殊处理. 如果最后一个输出的后面允许空格的话, 就可以把 if () 段整个去掉, 然后 while () 段中中的输出格式改为 "%04hx "
如果想再提高效率的话- /* gcc a.c && ./a.out < input.txt > output.txt */
- #include <stdio.h>
- inline void output(short x)
- {
- const static char tab[] = "0123456789abcdef";
- putchar(tab[(x >> 12) & 0x0f]);
- putchar(tab[(x >> 8) & 0x0f]);
- putchar(tab[(x >> 4) & 0x0f]);
- putchar(tab[(x >> 0) & 0x0f]);
- putchar(' ');
- }
- int main(void)
- {
- int x;
- while (scanf("%d", &x) != EOF)
- output(x);
- return 0;
- }
复制代码 |
|