- 締切済み
配列の応用?
はじめまして。さっそく質問させていただきます。 『1から100までの数字をすべてかけた答えを出力する。1桁まで全て出るように。』 いろいろと調べたんですけど、この問題がどうしてもわかりません。 何か関数でも使うのですか?それとも配列の応用なのですか? お手数ですが、よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- gogo-tea
- ベストアンサー率75% (25/33)
#1です。 なるほど・・・#2さん、勉強になりました。 実際に実行していなかったので気づかなかったです^^; 質問者さん、どうもすみませんでした m(_ _)m
- sakusaker7
- ベストアンサー率62% (800/1280)
RubyとかPythonだったら何も考えないで素直に 1から100まで掛ければいいだけの話ですが、 PHPにはそんな便利な仕掛けはありませんので、 ちょっと自分で努力する必要があります。 #1の方のスクリプトを実行してみて答えを見てみれば わかりますが、正しい答えが求まっていないはずです。 ちなみにRubyに計算させたところ 93326215443944152681699238856266700490715968264381621468592963895217599993229915 608941463976156518286253697920827223758251185210916864000000000000000000000000 という答えが出ました。 で、こういうでかい桁の数字を計算したりするのに 配列を使うわけです。 詳しくは多倍長演算というキーワードで検索してみてください。 もっとも、PHPには PHP: BCMath任意精度数学関数 - Manual http://www.php.net/manual/ja/ref.bc.php PHP: GMP 関数 - Manual http://www.php.net/manual/ja/ref.gmp.php というのがありますので、普通の数値を扱うよりは 面倒ですが、計算することはできます。 でも何かの問題ということなら、これらを使うと 減点されるかもしれませんね。
お礼
ご回答ありがとうございます。 そして、ご丁寧に教えてくださりありがとうございます。 知らない関数とかも出ておりますので勉強をさせて頂きます。 ご親切にありがとうございました。
- gogo-tea
- ベストアンサー率75% (25/33)
1 x 1 = 1 1 x 2 = 2 2 x 3 = 6 6 x 4 = 24 といった感じのものでしたら <?php $ans = 1; for($i=1;$i<=100;$i++){ echo $ans . " x " . $i . " = " . $ans * $i . "<br>"; $ans = $ans * $i; } echo "<br><br><br>last_answer = " . $ans; ?> でいけるかと思うのですが解釈が違っていましたらすみません。
お礼
ご回答ありがとございました。 こういうものはfor文でできるんですね。新たな発見ができてよかったです。 勉強させていただきます。ありがとうございました。
お礼
いえいえ、とんでもないです☆