18-12-19 美国7-11连锁店

         在美国有一个连锁店叫7-11店,因为这个店以前是早上7点开门晚上11点关门。有一天,一个顾客在商店里挑了四件商品,然后到付款处去交钱。营业员拿起计算器,按了一些键,然后说:总共是$7.11。这个顾客开玩笑说:难道因为你们的店名叫7-11,所以我就要付$7.11吗?这个店员没有听出来这是一个玩笑,回答说:当然不是,我把这四件商品的价格相乘才得出这个结果的!顾客一听非常吃惊:你怎么把它们相乘呢?应该相加才对!营业员答道:噢!对不起,我今天非常头疼,所以把键按错了。然后营业员将价格重新算了一遍,发现四件商品的价格加起来后的结果竟然也是$7.11。

        请设计算法,求解四件商品的价格。

//蛮力法求解 
#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&&i+j+k+l==711)
                /*
                    价钱$7.11是浮点数,将它们扩大100倍就变成整数计算了;
                */
                {
                    cout<<"i="<<i/100.0<<" j="<<j/100.0<<" k="<<k/100.0<<" l="<<l/100.0<<endl;
                    goto exit;
                /*
                    找到一个就ok了,再继续找下去就会生成四个商品价格的全排列;
                */
                }
            }
        }
    }
exit:
    return 0;
}

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值