1. 程式人生 > >CCF201709-1 打醬油(100分)

CCF201709-1 打醬油(100分)

問題描述   小明帶著N元錢去買醬油。醬油10塊錢一瓶,商家進行促銷,每買3瓶送1瓶,或者每買5瓶送2瓶。請問小明最多可以得到多少瓶醬油。 輸入格式   輸入的第一行包含一個整數N,表示小明可用於買醬油的錢數。N是10的整數倍,N不超過300。 輸出格式   輸出一個整數,表示小明最多可以得到多少瓶醬油。 樣例輸入 40 樣例輸出 5 樣例說明   把40元分成30元和10元,分別買3瓶和1瓶,其中3瓶送1瓶,共得到5瓶。 樣例輸入 80 樣例輸出 11 樣例說明   把80元分成30元和50元,分別買3瓶和5瓶,其中3瓶送1瓶,5瓶送2瓶,共得到11瓶。

問題分析 儘可能多地使用買五送一的組合 餘錢 資料結構

三個整型變數即可

演算法設計

  1. 輸入總錢數N
  2. N整除50,計算得n2
  3. 餘錢整除30,計算得n1
  4. 輸出N整除10+2*n2+n1

程式設計實現 (滿分C++程式碼)

#include<iostream>
using namespace std;

int main()
{
	int N;
	cin>>N;
	
	int n2=0,n1=0;//分別表示買五送一、買三送一的組數
	
	n2=N/50;
	n1=(N-n2*50)/30;
	
	cout<<(n1+n2*2+N/10);
	return 0;
	
 }