第八屆藍橋杯第一題購物單
小明剛剛找到工作,老闆人很好,只是老闆夫人很愛購物。老闆忙的時候經常讓小明幫忙到商場代為購物。小明很厭煩,但又不好推辭。
這不,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,不要填寫任何多餘的內容。
特別提醒:不許攜帶計算器入場,也不能開啟手機。
答案:5200
程式碼:
#include<stdio.h>
#define N 50
int main()
{double a[N]={180.90,10.25,56.14,104.65,100.30,297.15,26.75,130.62,240.28,270.62,115.87,247.34,73.21,101.00,79.54,278.44,199.26,12.97,166.30,125.50,84.98,113.35,166.57,42.56,81.90,131.78,255.89,109.17,146.69,139.33,141.16,154.74,59.42,85.44,293.70,261.79,11.30,268.27,128.29,251.03,208.39,128.88,62.06,225.87,12.89,34.28,62.16,129.12,218.37,289.69};
double b[N]={0.88,0.65,0.90,0.90,0.88,0.50,0.65,0.50,0.58,0.80,0.88,0.95,0.90,0.50,0.50,0.70,0.50,0.90,0.78,0.58,0.90,0.68,0.50,0.90,0.95,0.80,0.78,0.90,0.68,0.65,0.78,0.80,0.80,0.68,0.88,0.65,0.88,0.58,0.88,0.80,0.75,0.75,0.90,0.75,0.75,0.75,0.58,0.50,0.50,0.80};
double sum=0.0;
double d;
int c;
int i;
for(i=0;i<N;i++)
sum+=(a[i]*b[i]);
printf("sum=%lf\n",sum);
d=sum/100+0.5;
c=(d+0.5);
printf("應取出%d\n",c*100);
return 0;
}