zoukankan      html  css  js  c++  java
  • 比赛整理花园问题解题报告

    整理花园问题

    题目大意:

    有三户人家共拥有一座花园,每户人家的太太均需帮忙整理花园。A 太太工作了5 天,B 太太则工作了4 天,才将花园整理完毕。C 太太因为正身怀六甲无法加入她们的行列,便出了90元。请问这笔钱如何分给A、B 二位太太较为恰当?A 应得多少元?90/(5+4)*5=$50 元?如果这么想你就上当了!正确答案是60 元。如果没想通的话再想想吧。
    下面回答一个一般性的问题:假定A 太太工作了x 天,B 太太工作了y 天,C 太太出了90元,则A 太太应得多少元?输入保证二位太太均应得到非负整数元钱。三个太太工作效率相同。
    友情提示:本题有个小小的陷阱哦。如果答案错的话,认真检查一下代码吧。
    要求:
    Input
    输入第一行为数据组数T (T<=20)。每组数据仅一行,包含三个整数x, y, z (1<=x, y<=10,1<=z<=1000)。
    Output
    对于每组数据,输出一个整数,即A 太太应得的金额(单位:元)。样例输入:
    Sample Input
    2
    5 4 90
    8 4 123 
    Sample Output
    60
    123 

    注意提示:
    如果使用浮点数,请小心误差,输出时尽量用四舍五入。

    题目分析:
    这是一道典型的数学问题。做题前首先要做出计算公式,找到公式后写程序就简单了。要想得到A太太所得的钱数,因为要考虑到浮点数为问题,根据计算得到公式
    三人都做每人应做的天数s=(x+y)/3.0;A多做的天数a=x-s;B多做的天数b=y-s;C应该付给A的钱数pay=a/(a+b)*z。
    程序代码:
     1 #include<cstdio>
     2 #include<iostream>
     3 using namespace std;
     4 
     5 int T[20];
     6 int y[10];
     7 int z[1000];
     8 
     9 int main ()
    10 {
    11     int T;
    12     scanf("%d",&T);
    13     while(T--)
    14     {
    15     int x,y,z;
    16     double a,b,s,pay;
    17     
    18     
    19     scanf("%d%d%d",&x,&y,&z);
    20     
    21         s=(x+y)/3.0;      //三人都做每人应做的天数
    22         a=x-s;            //A多做的天数
    23         b=y-s;            //B多做的天数  
    24         pay=a/(a+b)*z;    //C应付给A的钱数
    25         int k=pay+0.5;    //将钱数四舍五入得到整数
    26         cout<<k<<endl;
    27     }
    28     return 0;
    29     
    30 }

    心得:
    这道题看起来很简单,但就是在计算A应该得到多少钱时,总也找不到关系式,所以计算了很久。找到关系式后,程序很快就写完啦。算是一道很简单的题目。

    觉得自己在思考方面还存在一些问题,下次应该更多做一些数学题,锻炼一下自己的思维能力。



     

  • 相关阅读:
    HTML <form> 标签的 method 属性(20161028)
    PHP数据访问增删查(20161028)
    PHP数据访问基础知识(20161028)
    java代理机制
    java 模拟实现消费者和生产者问题
    Single Number II
    从1到1000中随机取出900个不重复的随机数
    取苹果方式总数
    Net-SNMP(V3协议)安装配置笔记(CentOS 5.2)(转)
    单例模式
  • 原文地址:https://www.cnblogs.com/ttmj865/p/4654852.html
Copyright © 2011-2022 走看看