Last active
July 10, 2025 12:30
-
-
Save zr-tex8r/02cd63626900b685658806273f44aaa9 to your computer and use it in GitHub Desktop.
イマドキの生成AIのTeXプログラミングを添削する③
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
% --- 内部で使用するカウンタと条件フラグを定義 --- | |
\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. 全ての出力の後に改段落 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
説明
入力
以下の条件に従って、TeX言語でFizzBuzzをするマクロを実装してください。
\FizzBuzz{<整数n>}
で1からnまでのFizzBuzzの結果を版面に出力する。