口罩是防疫的必需品,需要提前储备,小明接到第二项任务就是帮助同学们购买口罩,他总共带了n(0<=n<=100)元,到超市后发现口罩单买是3角/个,超市里也有2种优惠方案,A方案:买5个送1个;B方案:买一包(12个)送3个。输入有多个案例,每组案例为一个整数n,表示钱的数量。对于每组案例输出最多可以买到的口罩数量。
2条回答 默认 最新
秘密之乡 2022-01-02 14:06关注买5个送一个 相当于 1.5元买6个 原价1.8 6个
买1包送3个 相当于 3.6元 买15个 原价 4.5 15个
很显然 要买最多 肯定 要把B方案拉满#include<iostream> #pragma warning(disable:4996) #include<stdio.h> using namespace std; int main() { double n; scanf("%lf", &n); if (n < 1.5) { printf("%d", (int)(n / 0.3)); } else if (n < 3.6) { int _group6 = (int)((n / 1.5)); int unit = (int)((n - 1.5 * _group6) / 0.3); printf("%d", _group6*6+unit); } else if (n <= 100) { int _group15 = (int)(n / 3.6); int _group6 = (int)((n - 3.6* _group15) / 1.5); int unit = int((n - 3.6 * _group15 - 1.5 * _group6) / 0.3); printf("%d,%d个大包,%d个小包,%d个散", (int)15 * _group15 + 6 * _group6 + unit, _group15, _group6, unit); } }本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报 编辑记录无用 1