판매 가격과 이익률 또는 손실률이 주어졌을 때, 상품의 원가(Cost Price)를 구하는 방법을 알아보겠습니다. 원가는 판매자가 상품을 처음 구입한 가격을 의미하며, 이익과 손실은 모두 이 원가를 기준으로 계산됩니다.
원가 계산 공식
이익이 발생했는지, 손실이 발생했는지에 따라 적용하는 공식이 조금씩 다릅니다.
이익이 있는 경우
원가 = (판매 가격 × 100) ÷ (100 + 이익률)
손실이 있는 경우
원가 = (판매 가격 × 100) ÷ (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
코드 설명
이익이 있는 경우: 판매 가격이 1020이고 이익률이 20%라면, 원가는 1020 × 100 ÷ (100 + 20) = 850이 됩니다.
손실이 있는 경우: 판매 가격이 900이고 손실률이 10%라면, 원가는 900 × 100 ÷ (100 − 10) = 1000이 됩니다.
또한 나눗셈 과정에서 정수 나눗셈으로 인해 소수점 이하가 잘리는 것을 방지하기 위해, 코드에서는 100 대신 실수형 값인 100.0을 곱하여 부동소수점 연산을 수행하고 있습니다. 이렇게 하면 원가가 정수가 아닌 경우에도 정확한 결과를 얻을 수 있습니다.