口罩是防疫的必需品,总共带了n(0<=n<=100)元,到超市后发现口罩单买是3角/个,超市里也有2种优惠方案,A方案:买5个送1个;B方案:买一包(12个)送3个。聪明的你来算算他最多可以买到多少个口罩?
买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);
}
}
/*思路:明显方案b比方案a好,所以可以买b的就不用a方案,剩下的用a,在剩下的零卖*/
#include"stdio.h"//头文件
int main(void)
{int i=0,j=0,w=0;
int name,x;
printf("一共带了");
scanf("%d",&name);
x=(name*10)/3;//一共可以买x个
while(x!=0)
{
if(x>12)
{x=x-12;
i++;
}
else if(5<x&&x<12)
{
x=x-5;
j++;}
else
if(x!=0)
{
w=x;
x=0;}
}
x=(name*10)/3;
printf("一共可以买一下数量个");
printf("%d",j+(i*3)+x);
return 0;
}