Language detail: dc

Coverage: 2.19%
number of '+' ratings
contribution for coverage

Unsolved challenges

codes

Feed

Used modules

与えられた数字のケタ数 (Nested Flatten)

いまごろだが問題を読み違えていたことに気付いたので訂正(一行目)。前のマクロでは位と最高位の数字を取り出していた。また、その目的だったとしても前の投稿は冗長だったので短かくしたものをついでに(二行目)。以下は実行例。数字のみの行は出力。

2469 ldxf
1000
4
c
_34567 ldxf
10000
5
c
2469 lcxf
1000
2

言語一覧へのdcの追加ありがとうございます。

1
2
[Zd1-10r^]sd
[_1*]ss[d0>sdZ1-10r^Sxlx/Lx]sc
立方根の計算 (Nested Flatten)

	
1
[_1*]ss[q]sq[d2*rd*lar/+3/ddd**la-d0>sld>qlrx]sr[14kd0=q.1ddd*d**d**sddsa10/lrx]sc

dcのマクロ。dcを起動して投稿のマクロを入力後、例えば以下のようにすると三乗根を計算する。

10 lcxp

この問題では1000未満という条件があるので大丈夫だが、あまり大きい数を入れるとSegmentation faultで落ちる。自分を呼び出すことで繰り返しを実現しているので呼び出しが深くなることが問題と思われる。

1
[_1*]ss[q]sq[d2*rd*lar/+3/ddd**la-d0>sld>qlrx]sr[13k.1d*dd*d**sddsa10/lrx]sc
与えられた数字のケタ数 (Nested Flatten)

dcのマクロで。投稿のマクロを入力後、例えば次のように入力するとスタックのトップ二つに結果がプッシュされているのが見える。

2469 ldxf

入力は負の数でも良い。dcでは負数はマイナス記号ではなくアンダースコアで指定する。

_34567 ldxf
1
[_1*]sn[Ll10r^q]sq[d10>q10/Ll1+sllax]sa[d0>n0sllax]sd
隣り合う二項の差 (Nested Flatten)

UNIXコマンドのdcのマクロで作ってみた。dcを起動して投稿のマクロを入力した後、

3 1 4 1 5 9 2 6 5 ldxf

とすると求めた差の数列がスタックに入っている様子が表示される。

1
[q]sq[z1=qSslax]sa[lsr-lc1-sclc1=qLslbx]sb[zsclaxlbx]sd

Index

Feed

Other

Link

Pathtraq

loading...