メモ

yukicoderでゆるふわgolf

yukicoder No.701 ひとりしりとり

問題はこちら
No.701 ひとりしりとり - yukicoder

まずn個の相異なる文字列を生成しよう。これは前にやった。
yukicoder No.327 アルファベット列 - メモ
こうしてできた文字列の前後に'a'を付け、最後の単語にはさらに'n'をつければよい

//No327の使い回し
void f(int n){
	~n?f(n/26-1),putchar(97+n%26):0;
}
int main(){
	int n;
	scanf("%d",&n);
	for(int i=0;i<n;i++){
		printf("a");
		f(i);
		printf("a%c",i==n-1?'n':' ');
	}
}

ループを逆にまわして変数を省略、関数化せずにループする、2回あるprintfをまとめる

x;
main(n){
	for(scanf("%d",&n);x=--n;)for(printf("a a");putchar(x%9+97),x/=9;);
	puts("n");
}

88B