美國有一個連鎖店叫7-11

題目:
在美國有一個連鎖店叫7-11.這樣叫的原因可能是因爲他們以前常常是早晨7點開門晚上11點關門,但現在他們全天營業.有一天,一個顧客在其中的一個店裏挑了四樣東西,然後他到收銀臺去交錢.營業員拿起計算器,按了一些鍵,然後說道:“總共是$7.11.”
這個顧客開了個玩笑說:難道你們的店名叫7-11,所以我就要付$7?”
營業員沒聽出是個玩笑,回答說:“當然不是的!我已經把這四樣東西的價格相乘才得出這個結果的!”
顧客一聽非常吃驚,“你怎麼把它們相乘呢?你應該把他們相加纔對嘛.”
營業員答道:“哦,對了,真是抱歉,我今天非常頭疼,所以把鍵按錯了.”
然後營業員將結果重算了一遍,將這四件商品的價格加在一起,然而令他們倆更吃驚的是總和也是$7.11.
現在我們的任務就是找出這四種商品的價格是多少?

解題思路:

由於價錢7.11是浮點數 所以我們把價錢擴大100倍 這樣就可以變成整數計算啦,找到一個答案就可以了,因爲如果你繼續找,只會生成這個答案的全排列而已。

代碼如下:

#include<iostream>
using namespace std;
int main(){
	for(int i=1;i<=711;i++){
		for(int j=1;j<=711-i;j++){
			for(int k=1;k<=711-i-j;k++){
				int l=711-i-j-k;
				if(i*j*k*l==711000000){
					cout<<i/100.0<<" "<<j/100.0<<" "<<k/100.0<<" "<<l/100.0<<"\n";
					return 0;
				}
			}
		}
	}
	return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章