Skip to content

Instantly share code, notes, and snippets.

@morontt
Last active January 17, 2016 23:17
Show Gist options
  • Save morontt/108bcdedc32b00e6edf5 to your computer and use it in GitHub Desktop.
Save morontt/108bcdedc32b00e6edf5 to your computer and use it in GitHub Desktop.
Задачка о курицах и продававших их фермерах
/*
* Три фермера продавали куриц на местном рынке. У одного было 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