3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[C言語][小ネタ]しかのこのこのここしたんたん

Last updated at Posted at 2024-08-24

はじめに

@pikさんの公開された記事『[Delphi][小ネタ]しかのこのこのここしたんたん』のC言語版です。

問題へのリンク:

実際書いてみたコード

101バイト
main(i){for(;++i<72;)printf("%.*s",3+3*(377>>i%7*2&3),"しかのこたん""\n"+3*(107556>>i%7*3&7));}
実行結果
しかのこのこのここしたんたん
しかのこのこのここしたんたん
しかのこのこのここしたんたん
しかのこのこのここしたんたん
しかのこのこのここしたんたん
しかのこのこのここしたんたん
しかのこのこのここしたんたん
しかのこのこのここしたんたん
しかのこのこのここしたんたん
しかのこのこのここしたんたん

とりあえずのたたき台的なやつです。もっと短くできる書き方があれば更新していきたいと思います。
文字コードはUTF-8を想定しておりひらがな1文字を3バイトで計算しています。

しかのこのこのここしたんたん≪改行≫✕10を、"しかのこたん"という文字配列一つから生成せよ

という問題内容からは改行の仕方がインチキくさいことは自覚しています。

1文字づつ出力したほうが短かった(8/25追記)

92バイト
main(i){for(;++i<152;)printf("%.3s","しかのこたん""\n"+3*(20619507376693>>i%15*3&7));}

出力する文字のオフセットを文字列リテラルで持ったほうが短かった(8/31追記)

90バイト
main(i){for(;++i<152;)printf("%.3s","しかのこたん""\n"+"psadgjgjgjjampm"[i%15]-97);}

おわりに

おわりです

3
0
20

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?