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

500ルピー紙幣の合計金額がXルピー以上かどうかを判定するC++プログラム

この記事では、2つの整数 K と X が与えられたとき、「Amal さんが持っている 500 ルピー紙幣 K 枚の合計金額が、X ルピー以上になるかどうか」を判定する C++ プログラムを紹介します。

例えば、K = 2、X = 900 が入力された場合を考えてみましょう。500 ルピー紙幣 2 枚の合計は 2 × 500 = 1000 ルピーとなり、900 ルピー以上であるため、出力は True(真) になります。

解法のアプローチ

この問題は非常にシンプルで、次の手順で解くことができます。

もし (500 × K) >= X ならば:
    true を返す
そうでなければ:
    false を返す

つまり、紙幣の総額を計算し、それが目標金額 X を下回っていないかを比較するだけです。

実装例

それでは、実際の C++ コードを見てみましょう。

#include <bits/stdc++.h>
using namespace std;

bool solve(int k, int x){
    if ((500 * k) >= x){
        return true;
    } else{
        return false;
    }
}
int main(){
    int K = 2;
    int X = 900;
    cout << solve(K, X) << endl;
}

入力

2, 900

出力

1

出力が「1」になっているのは、C++ では bool 型の true が整数の 1 として表示されるためです。つまり、500 ルピー紙幣 2 枚の合計 1000 ルピーが目標の 900 ルピー以上であることを意味します。

まとめ

このプログラムは、単純な掛け算と比較演算だけで解ける基本的な問題です。計算量は O(1) と非常に効率的で、初心者の方が条件分岐と関数の使い方を学ぶのに適した例題といえます。

  1. C++で配列がビトニック配列かどうかを判定するプログラム

    N個の整数からなる配列 arr[N] が与えられたとき、その配列がビトニック配列であるかどうかを判定するのが本記事のテーマです。ビトニック配列であれば「Yes its a bitonic array」と出力し、そうでなければ「No its not a bitonic array」と出力します。ビトニック配列とは、まず厳密に増加し、その後厳密に減少するような配列のことです。たとえば arr[] = {1, 2, 3, 4, 2, -1, -5} という配列は、4までは厳密に増加しており、4以降は厳密に減少しているため、ビトニック配列といえます。入力例と出力例入力arr[] = {1, 3, 5,

  2. C++で有向グラフの強連結成分を検出するプログラムの作成方法

    有向グラフにおいて、ある成分内の任意の頂点ペア同士の間に経路が存在するとき、その成分は「強く接続されている(強連結)」といいます。このような成分のことを強連結成分(SCC: Strongly Connected Components)と呼びます。この問題を解くには、まずDFS(深さ優先探索)を使って各頂点の完了時刻(finish time)を求めます。次にグラフを転置し、完了時刻をもとに頂点を降順に並べる(トポロジカルソート)ことで、強連結成分を一つずつ取り出します。これは有名なKosarajuのアルゴリズムに基づいた手法です。入力: グラフの隣接行列001101000001000000010