C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++で3と5の両方で割り切れる数をすべて出力するプログラム

はじめに

このチュートリアルでは、指定された数値未満のうち、3と5の両方で割り切れる数をすべて出力するC++プログラムについて解説します。

具体的には、数値Nが与えられたとき、N未満の数の中から3と5の両方で割り切れるすべての数を見つけて出力するのがタスクです。

アルゴリズムの考え方

この問題は、剰余演算子(%)を使うことでシンプルに解くことができます。手順は以下の通りです。

  1. 0からN-1までの数値を順番に調べます。
  2. 各数値について、「3で割った余りが0」かつ「5で割った余りが0」であるかを判定します。
  3. 両方の条件を満たす数値だけを出力します。

なお、3と5の両方で割り切れる数は15の倍数と同じであるため、条件を「num % 15 == 0」に置き換えることも可能です。

サンプルコード

#include <iostream>
using namespace std;
// 3と5で割り切れる数を出力する関数
void print_div(int N){
    for (int num = 0; num < N; num++){
        if (num % 3 == 0 && num % 5 == 0)
            cout << num << " ";
    }
}
int main(){
    int N = 70;
    print_div(N);
    return 0;
}

実行結果

0 15 30 45 60

コードの解説

print_div関数では、forループを使って0からN-1までの数値を走査し、if文で「num % 3 == 0 && num % 5 == 0」という条件判定を行っています。論理AND演算子(&&)により、両方の条件が同時に成立した場合のみ、その数値が出力されます。

main関数ではNに70を設定してprint_div関数を呼び出しているため、70未満の15の倍数である「0 15 30 45 60」が出力されます。

計算量

このプログラムの時間計算量はO(N)です。Nの値が大きくなると処理時間は線形に増加しますが、実装が非常にシンプルで理解しやすいのが特徴です。

  1. C++で木構造のノード数が奇数・偶数となるレベルをすべて出力する方法

    この記事では、木(ツリー)構造が与えられたときに、各レベルに含まれるノードの数を調べ、その数が奇数であるレベルと偶数であるレベルをそれぞれ出力する方法を、C++のサンプルコード付きで解説します。 問題の概要 まず、具体的な例を使って概念を確認しましょう。次のような木構造を考えます。 出力: ノード数が奇数のレベル:1, 3, 4 ノード数が偶数のレベル:2 解説: 第1レベルにはノードが1個(奇数)、第2レベルには2個(偶数)、第3レベルには3個(奇数)、第4レベルには1個(奇数)存在します。そのため、奇数となるのは「1, 3, 4」のレベル、偶数となるのは「2」のレベルです。 解き方

  2. 指定した範囲内で3と5の両方で割り切れる数をすべて出力するPythonプログラム

    本記事では、与えられた整数Nの範囲内から、3と5の両方で割り切れる数をすべて出力するPythonプログラムを解説します。実装方法はいくつかありますが、どの方法でも共通して必要になるのが「その数が3と5の両方で完全に割り切れるかどうか」を判定する処理です。 3と5で割り切れる数を出力する基本コード 以下が、指定した範囲内で3と5の両方で割り切れる数をすべて出力するPythonコードです。 lower = int(input(下限を入力してください:)) upper = int(input(上限を入力してください:)) for i in range(lower, upper+1):