#プログラム大喜利 (その2)

考えてみリゃループの中で if 文使ってなくても、跳んだ先の関数内でif分岐してりゃ分岐の処理数は同じなんだよな。それだったら最初からループの中でやったほうが速い。

#include <stdio.h>
#include <stdlib.h>

void select_char(char * buf, int pos)
{
	int i;
	
	if(pos == 9) {
		buf[pos] = '\0';
		printf("%s\n", buf);
		return;
	}

	for(i = 'A'; i < 'Z'; i++) {
		if(pos >= 2 && buf[pos - 1] == buf[pos - 2] && buf[pos - 1] == i) continue;
		buf[pos] = i;
		select_char(buf, pos + 1);
	}
}

int main(int argc, char **argv)
{
	char buf[10];
	
	select_char(buf, 0);
	return EXIT_SUCCESS;
}