スクリプト的に
任意の桁数の数字を探るには
さてどうしたものか?
色々考えてたら
integer型の変数をうまく使えば簡単に求まる
式はこんな感じ
i = 任意のくらいの数
k = 計算用の変数
A = 調べる数値
とすると
まずいったん計算用の変数に
k = A / (i × 10)
次にこのkを整数型に直す
ここがミソ
その数値を引き算する
k = A – {k × (i × 10)}
最後にもう一度任意の桁数で割り
整数に直す
k = k / i
口で説明するとややっこしいので
実際に計算する
例題として
563という数値の2桁目を求めたい場合
二桁目は10のくらいの数なので
563 / (10 × 10) = 5.63
5.63を整数に直すと5
元の563から引き算をするので
563 – {5×(10×10)} = 63
この63をさらに桁(10のくらい)で割る
63 / 10 =6.3
この数値を整数に直すと6
答えは6
わかったかにゃ??
これってロジック問題なので
実は中学生でも解ける(ハズ)
まぁ数学的なナゾナゾだな
こいつを
関数化するとこうなる
プログラマさんだったら、更に最適化できるんじゃないだろうか?
[javascript]
function getDigNumber_Fn inNum inDig =
(
–まず整数化する
myNum = sqrt(inNum^2);
myDig = sqrt(inDig^2);
–桁数をチェックする(指数関数を利用する)
checkDig = log10(myNum*10);
if (checkDig >= myDig) then
(
i = (10.0^myDig);–^はべき乗
–int型にすることで整数化
k = (myNum/i) as integer;
myNum = myNum – (k*i);
myNum = myNum / (i/10.0);
–もう一度小数点を切り捨てる
return (myNum as integer);
)
else(
return 0;
);–if end
);–fn end
print(getDigNumber_Fn 563 2);
[/javascript]
どうでっしゃろ?
で?こんなものが
何の役にたつかって?
フッフッフそれはお楽しみサ