ypoj 2286 佳佳买菜

题目名称:佳佳买菜

描述

佳佳是我们的ACM社团的副社长,她感觉得自己没存在感,so…
由于实验室要聚餐了,佳佳决定买点菜,来做菜给大家吃。佳佳喜欢吃娃娃菜,于是她来到买菜的地方。
佳佳:我要10斤娃娃菜。
老板称完 10斤一共是20元。
佳佳看这次的菜比以往的少了点,但单纯的佳佳没想太多。一旁的琛哥看了下,把菜篮和娃娃菜一起放在称上,显示是28元,
但篮子的重量是2斤,琛哥直接说:老板还我们10元。
老板愣了一下,还给了佳佳10块钱。

输入

第一行一个整数T表示数据组数。接下来T行,每行输入4个不超过1000且大于零的整数n,a,b,c。其中n表示佳佳要买多少斤娃娃菜,a表示老板称完后娃娃菜的总价,b表示娃娃菜和篮子放在称上显示的价格,c为篮子的重量。

输出

T行每行老板应该退还的钱(保留两位小数)

样例输入

1
10 20 28 2

样例输出

10.00

题解

这道题目是一道比较简单的数学题。根据题意,要求老板应该退换的钱,应为称完的总价a减去菜的实际价值。同时我们可以了解,老板坑钱的方式是改变系数k。因此,菜的实际价值为n/k菜的单价。
其中菜的单价为a/n。对k的求解我们可以利用 大专栏  ypoj 2286 佳佳买菜篮子和菜一起称出的价格,结合篮子重量,得到(n+c
k)*菜单价=b

综上所述,我们可以得到老板退换的钱为a-aac/n/(b-a)

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16


int ()
{
int n;
double d,a,b,c;
double k;
scanf("%d",&n);
while(n--)
{
scanf("%lf%lf%lf%lf",&d,&a,&b,&c);
k=a-a*a*c/d/(b-a);
printf("%.2lfn",k);
}
return 0;
}
原文地址:https://www.cnblogs.com/lijianming180/p/12251271.html