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

C++で販売価格と利益率・損失率から原価(仕入れ値)を求める方法


原価(仕入れ値)の求め方

販売価格と、利益または損失の割合(%)が分かっている場合、次の公式を使って商品の原価(仕入れ値)を逆算することができます。

利益が出ている場合の計算式

原価 = 販売価格 × 100 ÷(100 + 利益率)

損失が出ている場合の計算式

原価 = 販売価格 × 100 ÷(100 − 損失率)

C++での実装例

#include<iostream>
using namespace std;

// 利益率から原価を計算する関数
float priceWhenProfit(int sellPrice, int profit) {
    return (sellPrice * 100.0) / (100 + profit);
}

// 損失率から原価を計算する関数
float priceWhenLoss(int sellPrice, int loss) {
    return (sellPrice * 100.0) / (100 - loss);
}

int main() {
    int SP, profit, loss;

    SP = 1020;
    profit = 20;
    cout << "利益がある場合の原価: " << priceWhenProfit(SP, profit) << endl;

    SP = 900;
    loss = 10;
    cout << "損失がある場合の原価: " << priceWhenLoss(SP, loss) << endl;

    return 0;
}

実行結果

利益がある場合の原価: 850
損失がある場合の原価: 1000

コードの解説

priceWhenProfit関数は、販売価格と利益率を引数として受け取り、「販売価格 × 100 ÷(100 + 利益率)」という式で原価を計算します。例えば、販売価格1,020・利益率20%の場合、原価は 1,020 × 100 ÷ 120 = 850 となります。

priceWhenLoss関数は、販売価格と損失率を引数として受け取り、「販売価格 × 100 ÷(100 − 損失率)」という式で原価を計算します。例えば、販売価格900・損失率10%の場合、原価は 900 × 100 ÷ 90 = 1,000 となります。

なお、計算式中で「100.0」という小数値を掛けているのは、int型同士の除算で小数点以下が切り捨てられるのを防ぎ、正確な結果を得るためです。関数の戻り値の型がfloatになっているのも同じ理由です。

  1. C++で二分木のルートから特定ノードまでの距離を求める方法

    二分木が与えられたとき、ルートから特定のノード u までの距離(経路の長さ)を求める問題を考えてみましょう。例として、次のような二分木を想定します。この木において、ルートからノード6までの距離は2、ルートからノード8までの距離は3となります。解決のアプローチこの問題は、再帰的な手法を用いて解くことができます。具体的には、目的のノードを左部分木と右部分木の両方に対して再帰的に探索し、再帰の各段階(レベル)で距離を1ずつ加算していきます。探索の仕組みは以下の通りです。現在のノードがNULLの場合は -1 を返します(ノードが見つからなかったことを示す)。現在のノードの値が目的の値と一致した場合、ま

  2. C++でGCDとLCMの値から条件を満たす数のペアの総数を求める方法

    この記事では、最大公約数(GCD)と最小公倍数(LCM)の値が与えられたとき、その両方の条件を満たす整数のペアが全部で何通り存在するかを求める方法を解説します。 例として、GCDが2、LCMが12の場合を考えてみましょう。この条件を満たすペアは (2, 12)、(4, 6)、(6, 4)、(12, 2) の4つです。プログラムの目的は、このペアの総数「4」を計算することです。 解決の鍵となる数学的性質 2つの整数 a と b の間には、次のような重要な関係が常に成り立ちます。 a × b = GCD(a, b) × LCM(a, b) また、a と b はいずれも必ず GCD で割り切れるた