#include <stdio.h>
#include <ctype.h>
#include <math.h>
int main()
{
char ch;
while (scanf(" %c",&ch)!=EOF && isalpha(ch))
{
long m,em=1<<(toupper(ch)-'A'+1),i;
for (m=1;m<em;m++)
{
for (i=0;!(m&(1<<i));i++);
putchar('A'+i);
}
putchar('\n');
}
return 0;
}
简洁优雅的是写不出来了。不递归的话,这个代码应该算是最短的了吧?
因为sizeof(int)是常数,所以二分也没什么优势的说……