問題はこちら
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