数学 任意の桁の数字を調べる


スクリプト的に

任意の桁数の数字を探るには
さてどうしたものか?

色々考えてたら
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]

 

どうでっしゃろ?

で?こんなものが
何の役にたつかって?
フッフッフそれはお楽しみサ

 

Leave a comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください