2017年10月15日 星期日

[C_MM214-易] 賣麵包(C++)

[C_MM214-易] 賣麵包


問題描述 :
小明在麵包店打工,而店裡裝麵包的盒子有兩種分別為大盒子與小盒子。今天早上小明在收銀台幫客人結帳的時候,他突然想到一個問題:今天師傅烤了若干個麵包,並用數個大盒子與小盒子裝起來(每個盒子都有裝滿麵包),假設我們已經知道麵包的總數量以及總共用了多少個盒子,你是否可幫小明計算出裝這些麵包分別使用了多少個大盒子以及小盒子?

輸入說明 :
第一行為一個正整數N,代表共有N筆測資,接下來有N行。每筆測資有四個整數A,B,C,D(100≤A≤10000,100≤B≤10000,1≤C,D≤10000),分別代表麵包總數量,總共使用的盒子個數,一個小盒子最多可裝的麵包數,以及一個大盒子最多可裝的麵包數。每個整數之間以一個空格隔開。

輸出說明 :
每筆測資輸出兩個整數,分別為使用的小盒子個數以及大盒子個數,兩個整數間以空格隔開。每筆測資輸出於一行。

範例 :

輸入範例輸出範例
2
100 20 5 10
1000 127 7 10
20 0
90 37


  1. #include <iostream>  
  2. using namespace std;  
  3.   
  4. int main() {  
  5.     // [C_MM214-易] 賣麵包  
  6.     int N;//測資數量  
  7.     int tot_bread, tot_box;//麵包總數,使用的盒子總數  
  8.     int big_box, small_box;//大盒子的數量,小盒子的數量  
  9.     int big_bread, small_bread;  
  10.     //大盒子的麵包數,小盒子的麵包數  
  11.     //tot_box = big_box + small_box  
  12.     //tot_bread = big_box*big_bread + small_box*small_bread  
  13.     cin >> N;  
  14.     for(int i = 0;i < N;i++)  
  15.     {  
  16.         cin >> tot_bread >> tot_box >> small_bread >> big_bread;   
  17.         //tot_box = big_box + small_box  
  18.         //small_box = tot_box - big_box  
  19.         //tot_bread = big_box*big_bread + (tot_box - big_box)*small_bread  
  20.         big_box=(tot_bread - tot_box*small_bread)/(big_bread - small_bread);  
  21.         small_box = tot_box - big_box;  
  22.         cout << small_box << " " << big_box << endl;  
  23.     }  
  24.     return 0;  
  25. }  

沒有留言:

張貼留言