d827 - 買鉛筆
題目描述
題目要求計算購買指定數量鉛筆所需的最低金額。鉛筆可以單支購買(5元/支)或一打購買(50元/12支)。目標是根據輸入的班級人數,計算出購買所需鉛筆的總成本,且不允許多買。
解題思路
此題採用貪心策略。優先購買一打鉛筆,因為一打的單價較低。在購買一打鉛筆的過程中,不斷減少班級人數,直到剩餘人數不足以購買一打。然後,再根據剩餘人數購買單支鉛筆。
複雜度分析
- 時間複雜度: O(n)
- 空間複雜度: O(1)
程式碼
#include <iostream>
using namespace std;
int main (){
int a=0;
int m=0;
while(cin >> a){
while(a>=12){
a-=12;
m+=50;
}
while(a>=1){
a-=1;
m+=5;
}
cout << m << endl;
a=0;
m=0;
}
}