Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++에서 판매 가격과 이익·손실률로 원가(Cost Price) 구하기

문제 개요

프로그래밍 연습 문제에서 자주 등장하는 유형 중 하나는 판매 가격과 이익률(또는 손실률)이 주어졌을 때 상품의 원가를 역으로 계산하는 것입니다. 예를 들어 어떤 물건을 1,020원에 팔아 20%의 이익을 남겼다면, 처음 몇 원에 사들였는지 구해야 하는 상황입니다.

원가 계산 공식

원가는 아래 수식을 사용하면 간단하게 구할 수 있습니다.

이익이 발생한 경우:

$$Cost\ Price=\frac{Sell\ Price∗100}{100+percentage\ profit}$$

손실이 발생한 경우:

$$Cost\ Price=\frac{Sell\ Price∗100}{100-percentage\ loss}$$

즉, 판매 가격에 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;

    // 판매 가격 1020, 이익률 20%
    SP = 1020;
    profit = 20;
    cout << "이익이 났을 때의 원가: " << priceWhenProfit(SP, profit) << endl;

    // 판매 가격 900, 손실률 10%
    SP = 900;
    loss = 10;
    cout << "손실이 났을 때의 원가: " << priceWhenLoss(SP, loss) << endl;
}

실행 결과

이익이 났을 때의 원가: 850
손실이 났을 때의 원가: 1000

코드 설명

  • priceWhenProfit(): 판매 가격에 100을 곱한 후 (100 + 이익률)로 나누어 원가를 반환합니다.
  • priceWhenLoss(): 판매 가격에 100을 곱한 후 (100 − 손실률)로 나누어 원가를 반환합니다.
  • 나눗셈에서 정수 나눗셈으로 인해 소수점 이하가 잘리는 것을 방지하기 위해 100.0처럼 실수형 리터럴을 사용했습니다.

결과를 검증해 보면, 원가 850에 20% 이익을 붙이면 850 × 1.2 = 1020으로 판매 가격과 일치하고, 원가 1000에서 10% 손실을 보면 1000 × 0.9 = 900으로 역시 판매 가격과 일치합니다. 따라서 계산이 올바르게 수행되었음을 확인할 수 있습니다.