2017年第八屆藍橋杯 C/C++B組 真題分析與題解(未完待續)
阿新 • • 發佈:2019-02-19
一、前言
二、題目型別與分值分佈
1. 結果填空
(1)購物單 5’
(2)等差素數列 7’
(3)承壓計算 13’
(4)方格分割 17’
2. 程式碼填空
(5)取數位 9’
(6)最大公共子串 11’
3. 程式設計
(7)日期問題 19’
(8)包子湊數 21’
(9)分巧克力 23’
(10)k倍區間 25’
三、真題與題解
1. 標題: 購物單
小明剛剛找到工作,老闆人很好,只是老闆夫人很愛購物。老闆忙的時候經常讓小明幫忙到商場代為購物。小明很厭煩,但又不好推辭。
這不,XX大促銷又來了!老闆夫人開出了長長的購物單,都是有打折優惠的。
小明也有個怪癖,不到萬不得已,從不刷卡,直接現金搞定。
現在小明很心煩,請你幫他計算一下,需要從取款機上取多少現金,才能搞定這次購物。
取款機只能提供100元面額的紙幣。小明想盡可能少取些現金,夠用就行了。
你的任務是計算出,小明最少需要取多少現金。
以下是讓人頭疼的購物單,為了保護隱私,物品名稱被隱藏了。
-----------------
**** 180.90 88折
**** 10.25 65折
**** 56.14 9折
**** 104.65 9折
**** 100.30 88折
**** 297.15 半價
**** 26.75 65折
**** 130.62 半價
**** 240.28 58折
**** 270.62 8折
**** 115.87 88折
**** 247.34 95折
**** 73.21 9折
**** 101.00 半價
**** 79.54 半價
**** 278.44 7折
**** 199.26 半價
**** 12.97 9折
**** 166.30 78折
**** 125.50 58折
**** 84.98 9折
**** 113.35 68折
**** 166.57 半價
**** 42.56 9折
**** 81.90 95折
**** 131.78 8折
**** 255.89 78折
**** 109.17 9折
**** 146.69 68折
**** 139.33 65折
**** 141.16 78折
**** 154.74 8折
**** 59.42 8折
**** 85.44 68折
**** 293.70 88折
**** 261.79 65折
**** 11.30 88折
**** 268.27 58折
**** 128.29 88折
**** 251.03 8折
**** 208.39 75折
**** 128.88 75折
**** 62.06 9折
**** 225.87 75折
**** 12.89 75折
**** 34.28 75折
**** 62.16 58折
**** 129.12 半價
**** 218.37 半價
**** 289.69 8折
--------------------
需要說明的是,88折指的是按標價的88%計算,而8折是按80%計算,餘者類推。
特別地,半價是按50%計算。
請提交小明要從取款機上提取的金額,單位是元。
答案是一個整數,類似4300的樣子,結尾必然是00,不要填寫任何多餘的內容。
特別提醒:不許攜帶計算器入場,也不能開啟手機。
【分析】資料處理
#include <stdio.h>
int main()
{
double price=0;
price+=180.90*0.88;
price+=10.25*0.65;
price+=56.14*0.9;
price+=104.65*0.9;
price+=100.30*0.88;
price+=297.15*0.5;
price+=26.75*0.65;
price+=130.62*0.5;
price+=240.28*0.58;
price+=270.62*0.8;
price+=115.87*0.88;
price+=247.34*0.95;
price+=73.21*0.9;
price+=101.00*0.5;
price+=79.54*0.5;
price+=278.44*0.7;
price+=199.26*0.5;
price+=12.97*0.9;
price+=166.30*0.78;
price+=125.50*0.58;
price+=84.98*0.9;
price+=113.35*0.68;
price+=166.57*0.5;
price+=42.56*0.9;
price+=81.90*0.95;
price+=131.78*0.8;
price+=255.89*0.78;
price+=109.17*0.9;
price+=146.69*0.68;
price+=139.33*0.65;
price+=141.16*0.78;
price+=154.74*0.8;
price+=59.42*0.8;
price+=85.44*0.68;
price+=293.70*0.88;
price+=261.79*0.65;
price+=11.30*0.88;
price+=268.27*0.58;
price+=128.29*0.88;
price+=251.03*0.8;
price+=208.39*0.75;
price+=128.88*0.75;
price+=62.06*0.9;
price+=225.87*0.75;
price+=12.89*0.75;
price+=34.28*0.75;
price+=62.16*0.58;
price+=129.12*0.5;
price+=218.37*0.5;
price+=289.69*0.8;
printf("%lf\n",price);
return 0;
}
【答案】5200