2017年第八届蓝桥杯试题

标题: 购物单

小明刚刚找到工作,老板人很好,只是老板夫人很爱购物。老板忙的时候经常让小明帮忙到商场代为购物。小明很厌烦,但又不好推辞。

这不,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<cstdio>
#include<queue>
#include<algorithm>
#include<cstring>
#include<iostream>
#include<vector>

using namespace std;

int main()
{
    double sum = 180.9 * 0.88 + 10.25 * 0.65 + 56.14 * 0.9 + 104.65 * 0.9 + 100.3 * 0.88 + 297.15 * 0.5
                 + 26.75 * 0.65 + 130.62 * 0.5 + 240.28 * 0.58 + 270.62 * 0.8 + 115.87 * 0.88 
                 + 247.34 * 0.95 + 73.21 * 0.9 + 101 * 0.5 + 79.54 * 0.5 + 278.44 * 0.7 
                 + 199.26 * 0.5 + 12.97 * 0.9 + 166.3 * 0.78 + 125.5 * 0.58 + 84.98 * 0.9
                 + 113.35 * 0.68 + 166.57 * 0.5+ 42.56 * 0.9 + 81.9 * 0.95 + 131.78 * 0.8
                 + 255.89 * 0.78 + 109.17 * 0.9 + 146.69 * 0.68 + 139.33 * 0.65 + 141.16 * 0.78
                 + 154.74 * 0.8 + 59.42 * 0.8 + 85.44 * 0.68 + 293.70 * 0.88 + 261.79 * 0.65 
                 + 11.3 * 0.88 + 268.27 * 0.58 + 128.29 * 0.88 + 251.03 * 0.8 + 208.39 * 0.75
                 + 128.88 * 0.75 + 62.06 * 0.9 + 225.87 * 0.75 + 12.89 * 0.75 + 34.28 * 0.75
                 + 62.16 * 0.58+ 129.12 * 0.5 + 218.37 * 0.5 + 289.69 * 0.8;
    cout << sum << endl;
}

标题:等差素数列

2,3,5,7,11,13,....是素数序列。

类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。

上边的数列公差为30,长度为6。

2004年,格林与华人陶哲轩合作证明了:存在任意长度的素数等差数列。

这是数论领域一项惊人的成果!

有这一理论为基础,请你借助手中的计算机,满怀信心地搜索:

长度为10的等差素数列,其公差最小值是多少?

注意:需要提交的是一个整数,不要填写任何多余的内容和说明文字。

个人分析:把所有数(除0和1)n倍数(n >= 2)标记为非素数,得到范围MAXLEN内所有的素数。之后穷举等差数列首项与公差,找到符合条件(①数列长度至少为10;②数列元素均为素数)的公差为止。

答案为:210。

results matching ""

    No results matching ""