LANG SELRCT

コードを書く場所についてはこちら

2018年2月13日火曜日

JavaScriptで階乗の計算をする


階乗したい数↓


階乗したい数を左のテキストボックスに入れて
「階乗する」ボタンをクリックすると
右のテキストボックスに結果が表示されます


階乗の計算

コード.gs
function factorial() {
  var target = 12;
  var result = 1;
  for(var i = 0; i < target; i++){
    var num = i + 1;
    result = result * num;
  }
  Logger.log(result);
}
意訳
この機能がやること
対象の数を決める
結果の初期値を1にする
対象の数だけ以下を繰り返す
ひとつずつ+1して
resultに掛ける

結果をログに出す





大きい数になると指数表記になる

4.790016E8

が意味するのは

4.790016 × 10の8乗

これは

479001600

のこと


HTML Serviceで作る


コード.gs
function doGet() {
  return HtmlService.createHtmlOutputFromFile("index");
}
意訳
この機能がやること
指定したHTMLファイルを表示する




index.html
<!DOCTYPE html>
<html>
  <body>
    <input id="tb">
    <button id="bt">階乗する</button>
    <input id="tb2">
    <script>
    var tb = document.getElementById("tb");
    var tb2 = document.getElementById("tb2");
    var bt = document.getElementById("bt");
    bt.onclick = factorial;
    
    function factorial() {
      var target = tb.value;
      var result = 1;
      for(var i = 0; i < target; i++){
        var num = i + 1;
        result = result * num;
      }
      tb2.value = result;
    }
    </script>
  </body>
</html>
意訳
 


テキストボックス(入力用)
テキストボックス(結果表示用)
ボタン

idがtbの要素を取得する
idがtb2の要素を取得する
idがbuttonの要素を取得する
buttonがクリックされたらfactorialを実行する

この処理がやること
tbの値を取得して
結果の初期値を1にする
対象の数だけ以下を繰り返す
ひとつずつ+1して
resultに掛ける

tb2の値にresultを入れる