【题目描述】 P老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物。她发现商店一共有 3种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起 见,P老师决定只买同一种包装的铅笔。商店不允许将铅笔的包装拆开,因此P老师可能需要购买超过n支铅笔才够给小朋 友们发礼物。现在P老师想知道,在商店每种包装的数量都足够的情况下,要买够至少n支铅笔最少需要花费多少钱。
【输入】 输入的第一行包含一个正整数n,表示需要的铅笔数量。接下来三行,每行用两个正整数描述一种包装的铅笔:其中第一个整数表示这种 包装内铅笔的数量,第二个整数表示这种包装的价格。保证所有的7个数都是不超过10000的正整数。
【输出】 输出一行一个整数,表示P老师最少需要花费的钱。
【输入样例】 输入样例1: 57 2 2 50 30 30 27
输入样例2: 9998 128 233 128 2333 128 666
输入样例3: 9999 101 1111 1 9999 1111 9999
【输出样例】 输出样例1: 54
输出样例2: 18407
输出样例3: 89991
代码
#include<cstdio> #include<cmath> using namespace std; int n,shu1,shu2,shu3,jg1,jg2,jg3,a,b,c,min; int main() { scanf("%d%d%d%d%d%d%d",&n,&shu1,&jg1,&shu2,&jg2,&shu3,&jg3); a=ceil(n*1.0/shu1)*jg1; b=ceil(n*1.0/shu2)*jg2; c=ceil(n*1.0/shu3)*jg3; min=a; if(b<min) min=b; if(c<min) min=c; printf("%d",min); return 0; } #include<iostream> #include<cmath> using namespace std; int main() { int n,shu1,shu2,shu3,jg1,jg2,jg3,a,b,c,min; cin>>n>>shu1>>jg1>>shu2>>jg2>>shu3>>jg3; a=ceil(n*1.0/shu1)*jg1; b=ceil(n*1.0/shu2)*jg2; c=ceil(n*1.0/shu3)*jg3; min=a; if(b<min) min=b; if(c<min) min=c; cout<<min; return 0; }