题目描述:在美国有一个连锁店叫7-11店,因为这个商店以前常常是早晨7点开门,晚上11点关门。有一天,一个顾客在这个店里挑了四样东西,然后到收银台去交钱。营业员拿起计算器,按了一些键,然后说道:“总共是$7.11。”这个顾客开了个玩笑说:难道你们的店名叫7-11,所以我就要付$7.11吗?”营业员没听出这是个玩笑,回答说:“当然不是的!我已经把这四样东西的价格相乘才得出这个结果的!”顾客一听非常吃惊,“你怎么把它们相乘呢?你应该把他们相加才对嘛。”营业员答道:“哦,对了,真是抱歉,我今天非常头疼,所以把键按错了。”然后营业员将结果重算了一遍,将这4件商品的价格加在一起,然而,令他们俩更吃惊的是总和也是$7.11。设计蛮力算法找出这4样东西的价格各是多少?
#include<iostream>
using namespace std;
int main()
{
int total=711;//统一扩大100倍,商品价格直接++
double x1,x2,x3,x4;
int num=0;
for(x1=0;x1<total;x1++)//默认每个商品最低0.00元
{
for(x2=0;x2<total-x1;x2++)
{
for(x3=0;x3<total-x1-x2;x3++)
{
x4=total-x1-x2-x3;
num++;
if((x1*x2*x3*x4)==total*100*100*100&&(x1+x2+x3+x4)==total)//每个商品价格都扩大了100倍,total一共扩大了100的4次方
{
cout<<"x1="<<x1/100<<"$ x2="<<x2/100<<"$ x3="<<x3/100<<"$ x4="<<x4/100<<"$"<<endl;
cout<<"一共运行:"<<num<<"次"<<endl;;
return 0;
}
}
}
}
cout<<"没有找到合适的商品价格"<<endl;
return 0;
}
代码运行结果: