2016年10月9日日曜日

開発環境

アルゴリズムパズル(Anany Levitin (著)、Maria Levitin (著)、黒川 洋 (翻訳)、松崎 公紀 (翻訳)、オライリージャパン)の中級パズル、68.(各桁の数字の和 (Digit Sum))をJavaScriptで。

68.(各桁の数字の和 (Digit Sum))

( 0+1+2+··+9 )· 10 61 ·6+1 = 90 2 · 10 5 ·6+1 =27000001

JavaScriptで確認。

コード(Emacs)

HTML5

<label for="n0">1 - </label>
<input id="n0" type="number" min="1" step="1" value="1000000">:
<span id="output0"></span>

<script src="sample68.js"></script>

JavaScript

{
    'use strict';
    let input_n = document.querySelector('#n0'),
        span_output = document.querySelector('#output0');

    let sum = (nums) => {
        let s = 0;

        for (let i = 0, max = nums.length; i < max; i += 1) {
            s += nums[i];
        }
        return s;
    }
    let output = () => {
        let n = parseInt(input_n.value, 10),
            s = 0;        

        for (let i = 1; i <= n; i += 1) {
            s += sum(i.toString().split('').map((d) => parseInt(d, 10)));
        }
        span_output.innerText = s;
    };
    output();

    input_n.onchange = output;
}
:

0 コメント:

コメントを投稿