環境
問題
10未満の自然数のうち、3 もしくは 5 の倍数になっているものは 3, 5, 6, 9 の4 つがあり、これらの合計は 23 になる。同じようにして、1000 未満の 3 か 5 の倍数になっている数字の合計を求めよ。
考え方
- 0 ~ 1000 までの数字を作る
- 1.の数字に対して、 3 もしくは 5 の倍数の時の数字を取得する
- 2.で取得した数字を配列に格納する
- 2.~ 3.を 1000 まで繰り返す
- 配列内の数字の和を計算する
コード
const question001 = () => { const list: number[] = []; for (let i = 1; i < 1000; i++) { if(i % 3 == 0 || i % 5 == 0) { list.push(i) } } return list.reduce((sum, num) => { return sum + num; }) }
説明
- まず、3 もしくは 5 の倍数の時の数字を格納するための配列を作成する
- 0 ~ 1 までの数字を作るには、
for
ループを使い、1000 までの数字を作る - 1000 までの数字に対して、3 もしくは 5 の倍数の時の条件分岐を考慮する
- 条件に合致するとき、その時の数字を
list
に格納する - 最後に、list内の数字の和を返す