Project EulerのをC++で解く.
問題
Multiples of 3 or 5
https://projecteuler.net/problem=1
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
Find the sum of all the multiples of 3 or 5 below 1000.
英語わからない.和訳くれ
解答
[su_accordion][su_spoiler title=”解答を表示” open=”no” style=”fancy” icon=”plus” anchor=”” anchor_in_url=”no” class=”my-custom-spoiler”]
233168
[/su_spoiler]
プログラム
3の倍数と5の倍数の判定を行う簡単な問題である.
nの倍数かどうか判定するためには,nで割り切れるかを判定すれば良い.
ソースコード
[su_accordion][su_spoiler title=”ソースコードを表示” open=”no” style=”fancy” icon=”plus” anchor=”” anchor_in_url=”no” class=”my-custom-spoiler”]
#include <iostream> namespace { bool IsDivisible(const long &target, const long &div) { if (target % div == 0) { return true; } return false; } } int main () { long answer = 0; const long minimum_number = 1; const long maximum_number = 1000; for (long = minimum_number ; num < maximum_number; ++num) { if (IsDivisble(num, 3) || IsDivisble(num, 5)) { answer += num; } } std::cout << "Answer is " << answer << std::endl; return 0; }
[/su_spoiler]
ソースコード(アルゴリズム)説明
ある値が割り切れるかを判定する関数
- 余り(剰余)がゼロの場合,True
- 余り(剰余)がゼロでない場合,False
bool IsDivisible(const long &target, const long &div) { if (target % div == 0) { return true; } return false; }
実行
$ g++ -O3 -o problem1 main.cpp $ ./problem1
Answer is 233168
リポジトリ(GitLab)
Project Eulerの問題をまとめたものはこちらのリポジトリにあるので,確認してみてください(⌒∇⌒)
最後に
内容に誤りや不具合,ご意見があればコメントを残して頂けるとありがたいです
アルゴリズム勉強のおすすめ書籍
アルゴリズムは,プログラミング言語自体の勉強ではなく,問題を解決するための手順や方法のこと.
プログラミング言語の基礎を身に付けた後に学ぶものがアルゴリズムである.
効率的や高速なプログラムを書くことが出来るようになるだろう.
コメント