Last active
January 17, 2016 23:17
-
-
Save morontt/108bcdedc32b00e6edf5 to your computer and use it in GitHub Desktop.
Задачка о курицах и продававших их фермерах
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* Три фермера продавали куриц на местном рынке. У одного было 10 куриц, у | |
* второго - 16, у третьего - 26. Чтобы не конкурировать между собой, они | |
* договорились продавать куриц по одной цене. К обеду они решили, что продажи | |
* идут не так уж хорошо, поэтому они все одинаково понизили цену. К концу дня | |
* они продали всех куриц. Оказалось, что каждый из фермеров за этот день | |
* выручил 35 долларов. Какова была цена за курицу до обеда и после обеда? | |
* | |
* gcc -Wall chicken.c -o chicken -lm | |
*/ | |
#include <stdio.h> | |
#include <stdlib.h> | |
#include <math.h> | |
int main() { | |
int i, j, k, m; | |
float a, b, z; | |
for (i = 0; i < 10; i++) { //i = 10 - trivial solve a=3.5, b = 0 | |
for (j = 0; j <= 16; j++) { | |
m = 8 * i - 5 * j; | |
if (m != 0) { | |
//Solve[{x*a+(10-x)*b == 3500, y*a+(16-y)*b == 3500}, {a, b}] | |
a = 1750.0 * (i - j + 6) / m; | |
b = 1750.0 * (i - j) / m; | |
if (a > b && b > 0.0) { | |
if (fabsf(a - roundf(a)) < 0.01 && fabsf(b - roundf(b)) < 0.01) { | |
for (k = 0; k <= 26; k++) { | |
z = k * a + (26 - k) * b; | |
if (fabsf(z - 3500.0) < 0.1) { | |
printf("%4.2f %4.2f - %d %d %d\n", a / 100, b / 100, i, j, k); | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment