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;
}

 


版权声明:本文为Ryan_Running_D原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。