美国有一个连锁店叫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;
}

阅读更多
文章标签: 美国连锁店7-11
个人分类: 算法课
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭