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

 时间:2026-02-14 23:01:17

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、#include<iostream>using    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<<s1<<endl;        return    0;}

  • Dev-C++如何下载安装
  • c语言1~n累加求和
  • C语言中的strcmp函数怎样使用?
  • codeblocks下面的运行框不见了怎么办
  • C#如何打开模式对话框窗体
  • 热门搜索
    英语中秋节手抄报 五一手抄报内容大全 手抄报8k版面设计图 我爱读书手抄报大全 防踩踏手抄报 有关感恩的手抄报 关于热爱生命的手抄报 走进大自然手抄报 爱护眼睛手抄报 保护生态环境手抄报