多语言展示
当前在线:1925今日阅读:4今日分享:26

C++ 成人,儿童,团体票购票问题编程

小明期末考试终于考完了。有一天,他和同学们以及他们的爸爸、妈妈一起相约去游乐园玩。游乐园的门票价格如下:成人票每人80元,儿童票每人50元,团体票每人60元,满20人可购团体票。已知成人人数a,儿童人数b,请编写一个程序,求购买门票的最少花费?输入两个整数a和b,均不超过1000,两数之间用一个空格隔开。输出一个整数,即购买门票的最少花费。
方法/步骤
1

分析:那么现在成人有a人,小孩子有b人。当a+b<20时,就不存在团体票,只能按个人购买,不存在省钱。购票费=a*80+b*50;当成人人数a>20时,所有的大人组成一个团。这是最省钱。购票费=a*60+b*50当成人人数+小孩人数大于20,但成人人数小于20时,即a+b>20,a<20这里要提醒一下,大人购买团体票能省20元,而小孩购买团体票要多付10元,吃亏了。所以小孩子尽量要购买儿童票。所以根据这个原则a+b多余20的部分我们都设定为购买儿童票。因此可以建立一个不等式来确定20人时,怎么购票。a*80+(20-a)*50<20*60 即 1000+30*a<1200;这个不等式可以确定大人人数小于多少时,单独购票比买团体票便宜。解得:a<6.67 因为人不能为小数,所以区a=6。也就是说当人数小于等于6时,成人与小孩单独购票最省钱。当总人数为40人,成人6人,小孩34人。购票费=6*80+34*50=2180,如果6个大人与14个小孩构成团体则:购票费=20*60+20*50=2200元。总人数还是 40人,成人7人,小孩33人,这是组团就便宜了。购票费=20*60+20*50=2200,而单独购买则:购票费=7*80+33*50=2210. 如果40人全都买团体票:购票费=40*60=2400因次这种类型的题目就是分析正好为组团人数 时,大人与小孩人数的分配情况。根据以上分析编写如下程序:

2

#includeusing    namespace    std;int    main(){    int a,b,s1;  //成人人数a,儿童人数b,购票费用s1    cin>>a>>b;    if(a+b<20)        s1=a*80+b*50;    else if(a>=20)        s1=a*60+b*50;    else if(a>=7)  //这里的7是又不等式:a*80+(20-a)*50<20*60输出来的        s1=20*60+(a+b-20)*50;    else        s1=a*80+b*50;    cout<

推荐信息