Skip to content

Instantly share code, notes, and snippets.

@zr-tex8r
Last active July 10, 2025 12:30
Show Gist options
  • Save zr-tex8r/02cd63626900b685658806273f44aaa9 to your computer and use it in GitHub Desktop.
Save zr-tex8r/02cd63626900b685658806273f44aaa9 to your computer and use it in GitHub Desktop.
イマドキの生成AIのTeXプログラミングを添削する③
% --- 内部で使用するカウンタと条件フラグを定義 ---
\newcount\@fizzbuzz@i % 1からnまでループするためのカウンタ
\newcount\@fizzbuzz@temp % 割り算の中間計算用カウンタ
\newif\if@fizzbuzz@printed % "Fizz"か"Buzz"が出力されたかを判定するフラグ
% --- \FizzBuzz{n} マクロの定義 ---
% 1からnまでのFizzBuzz結果を出力します
\def\FizzBuzz#1{%
\par % 1. 出力の前に改段落
\@fizzbuzz@i=1 % カウンタを1で初期化
\loop % 2. ループを開始
% --- 各数値に対するFizzBuzz処理 ---
\@fizzbuzz@printedfalse % フラグをリセット
% 3の倍数か判定
\@fizzbuzz@temp=\@fizzbuzz@i
\divide\@fizzbuzz@temp by 3
\multiply\@fizzbuzz@temp by 3
\ifnum\@fizzbuzz@temp=\@fizzbuzz@i
Fizz%
\@fizzbuzz@printedtrue
\fi
% 5の倍数か判定
\@fizzbuzz@temp=\@fizzbuzz@i
\divide\@fizzbuzz@temp by 5
\multiply\@fizzbuzz@temp by 5
\ifnum\@fizzbuzz@temp=\@fizzbuzz@i
Buzz%
\@fizzbuzz@printedtrue
\fi
% "Fizz"でも"Buzz"でもなければ、数値そのものを出力
\if@fizzbuzz@printed\else
\the\@fizzbuzz@i
\fi
% --- 処理ここまで ---
\ifnum\@fizzbuzz@i < #1\relax % 3. カウンタがn未満ならループを継続
\space % 次の単語との間に空白を挿入
\advance\@fizzbuzz@i by 1 % カウンタを1増やす
\repeat % ループの先頭に戻る
\par % 4. 全ての出力の後に改段落
}
@zr-tex8r
Copy link
Author

説明

  • 1回目のコミットがAIが出力したコード、2回目が私が修正したもの。
  • Gemini 2.5 Pro(無料枠)を使用。

入力

以下の条件に従って、TeX言語でFizzBuzzをするマクロを実装してください。

  • \FizzBuzz{<整数n>}で1からnまでのFizzBuzzの結果を版面に出力する。
  • 各単語の間は空白で区切り、最初と最後に改段落を入れる。
  • LaTeX上で動くマクロを作る。パッケージを使ってはいけない。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment