题目:大数学家欧拉在集市上遇到了本村的两个农妇,每人跨着个空篮子。 她们和欧拉打招呼说两人刚刚卖完了所有的鸡蛋。 欧拉随便问:“卖了多少鸡蛋呢?” 不料一个说:“我们两人自己卖自己的,一共卖了150个鸡蛋,虽然我们卖的鸡蛋有多有少, 但刚好得了同样的钱数。你猜猜看!” 欧拉猜不出。 另一个补充道:“如果我按她那样的价格卖,可以得到32元;如果她按我的价格卖,可以得到24.5元”。 欧拉想了想,说出了正确答案。
利用C语言编程“暴力求解”如下:
#include<stdio.h>
#define EPS 0.000001
void Func()
{
int x = 0; // 定义两个人的鸡蛋 x, y
int y = 0;
for (int i = 1; i < 150; i++)
{
x = i;
y = 150 - i;
double price_X = 24.5 / y; // 得到 x的单价
double price_Y = 32.0 / x; // 得到 y的单价
double money_X = price_X * x; // x卖的总钱总
double money_Y = price_Y * y; // y卖的总钱总
if (-EPS < (money_X - money_Y) && (money_X - money_Y) < EPS) // 浮点数相等比较
{
printf("%d ,%d", x, y);
break;
}
}
}
int main()
{
Func();
return 0;
}
结果为: