[蓝桥杯历届试题] 欧拉与鸡蛋
大數(shù)學(xué)家歐拉在集市上遇到了本村的兩個農(nóng)婦,每人跨著個空籃子。她們和歐拉打招呼說兩人剛剛賣完了所有的雞蛋。
歐拉隨便問:“賣了多少雞蛋呢?”
不料一個說:“我們兩人自己賣自己的,一共賣了150個雞蛋,雖然我們賣的雞蛋有多有少,但剛好得了同樣的錢數(shù)。你猜猜看!”
歐拉猜不出。
另一個補充道:“如果我按她那樣的價格賣,可以得到32元;如果她按我的價格賣,可以得到24.5元”。
歐拉想了想,說出了正確答案。
?
我們不是數(shù)學(xué)家,懶得列出公式來分析。但計算機可以“暴力破解”,就是把所有可能情況都試驗一遍,撞上為止!
請寫出每人雞蛋的數(shù)目(順序不限),用逗號隔開。
?
答案寫在“解答.txt”中,不要寫在這里!???
?
參考答案:
70,80 或 80,70
解題思路:
枚舉。但是需要注意的是 中間過程涉及到小數(shù)的得到最終結(jié)果的兩個數(shù)比較是否相等,會出問題。比如,下面的代碼:
#include <iostream> using namespace std;int anum,bnum; double aprice,bprice;int main() {for(anum=1;anum<150;anum++){bnum=150-anum;bprice=32.0/anum; //涉及到小數(shù)的保留 aprice=24.5/bnum;if(anum*aprice==bnum*bprice){cout<<anum<<" "<<bnum<<endl;}}return 0; }結(jié)果這個程序什么也不輸出。
換一種思路,把小數(shù)比較換做整數(shù)比較,即不進行小數(shù)計算, 上面的比較可以換成 anum*24.5/bnum和 bnum*32/anum的比較, 即 相除,即比較分子分母是否相等就可以了,即比較 ?320*bnum*bnum ?和 245*anum*anum是否相等即可。
代碼:
#include <iostream> using namespace std; int anum,bnum;int main() {for(anum=1;anum<150;anum++){bnum=150-anum;if(320*bnum*bnum==245*anum*anum){cout<<anum<<" "<<bnum<<endl;}}return 0; }轉(zhuǎn)載于:https://www.cnblogs.com/vivider/p/3697705.html
總結(jié)
以上是生活随笔為你收集整理的[蓝桥杯历届试题] 欧拉与鸡蛋的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。