長崎大学に勤務 (2020–現在) · 執筆者は1,258件の回答を行い、421.2万回閲覧されています · 6年前
Pascal言語は懐かしいですね.
1995年の京大の入試問題に
自然数 [math]n[/math] の関数 [math]f(n)[/math], [math]g(n)[/math] を [math]f(n)\equiv n\bmod7[/math], [math]g(n)\equiv3f(\sum_{k=1}^7k^n)[/math] によって定める(中略)あなたの好きな自然数 [math]n[/math] を一つ決めて [math]g(n)[/math] を求めよ.その [math]g(n)[/math] の値をこの設問におけるあなたの得点とする.
というものがありました.
モダンなスクリプト言語であればワンライナー(一行野郎)で総当たりできる
のですが,敢えてPascalで総当たりしてみたことがあります.コードは次のようになりました.
- program kyoto;
- uses math;
- function f(n: real): real;
- var
- r: real;
- d: real;
- begin
- r := floor(n / 7);
- d := r * 7;
- f := n - d
- end; { f }
- function g(n: integer): real;
- function expt(k, n: integer): real;
- var
- i: integer;
- r: real;
- begin
- r := 1;
- for i := 1 to n do
- r := r * k;
- expt := r
- end;
- var
- k: integer;
- a: real;
- begin
- a := 0;
- for k := 1 to 7 do
- a := a + expt(k, n);
- g := 3 * f(a)
- end; { g }
- var
- i: integer;
- begin
- for i := 1 to 11 do
- writeln(g(i))
- end.
このコードは「文芸的プログラミングが普及しなかった理由」
というブログ記事を書くために筆者が書いたものです.2000年以降で僕がPascalコードを読み書きしたのは,後にも先にもこの一度だけでした.(ヴィルトの「アルゴリズムとデータ構造」
は時々参照しますが,こちらはPascalではなくModula-2です.)脚注
閲覧数:6,428回 ·
高評価を見る
· 1/4件の回答