この記事を三行にまとめると
入力された数字がナルシシスト数か判定する入力した数以下のナルシシスト数を抽出
僕ナルシストォォォ!!
この記事は以下の動画の中に出てきたサンプルコードを載せたものです。コピペなどが必要なときに使ってください。
HTMLとCSS
<div>
<input type="number" id="number">
<button type="button" id="start">検証開始</button>
</div>
<div id="formula"></div>
<div id="result"></div>
<style>
* { font-size: 24px; font-family: 'メイリオ' }
body { text-align: center }
input, button { padding: 5px }
</style>
入力された数字がナルシシスト数か判定する
number = document.getElementById('number');
start = document.getElementById('start');
formula = document.getElementById('formula');
result = document.getElementById('result');
start.onclick = function() {
num = number.value;
lists = num.split('');
sum = lists.reduce(function(prev, current){
return Number(prev) + Number(current ** lists.length);
}, 0);
formula.innerText = '各桁の' + lists.length + '乗の合計は' + sum;
result.innerText = (num == sum) ? 'ナルシシスト数です!' : 'ナルシシスト数じゃないです';
}
入力した数以下のナルシシスト数を抽出
start.onclick = function() {
num = number.value;
narcis = [];
for(i = 0; i <= num; i++) {
lists = String(i).split('');
sum = lists.reduce(function(prev, current){
return Number(prev) + Number(current ** lists.length);
}, 0);
if(i == sum) {
narcis.push(i);
}
}
result.innerText = 'ナルシシスト数は' + narcis.join(', ');
}