solution.cpp 1.9 KB
Newer Older
每日一练社区's avatar
每日一练社区 已提交
1 2 3 4
#include <iostream>
using namespace std;
int main()
{
每日一练社区's avatar
每日一练社区 已提交
5 6 7 8 9 10 11 12 13
    int num1[7] = {0, 1, 2, 5, 6, 8, 9}; //价牌包含的数字
    int num2[7] = {0, 1, 2, 5, 9, 8, 6}; //价牌翻转对应的数字
    int profit1[1111][2];                //利润1
    int profit2[1111][2];                //利润2
    int before_reverse;                  //颠倒前
    int after_reverse;                   //颠倒后
    int i = 0;
    int j = 0;
    for (int a = 1; a < 7; a++) //从1开始,第一位数字不可以是0
每日一练社区's avatar
每日一练社区 已提交
14
    {
每日一练社区's avatar
每日一练社区 已提交
15
        for (int b = 0; b < 7; b++)
每日一练社区's avatar
每日一练社区 已提交
16
        {
每日一练社区's avatar
每日一练社区 已提交
17
            for (int c = 0; c < 7; c++)
每日一练社区's avatar
每日一练社区 已提交
18
            {
每日一练社区's avatar
每日一练社区 已提交
19
                for (int d = 0; d < 7; d++)
每日一练社区's avatar
每日一练社区 已提交
20
                {
每日一练社区's avatar
每日一练社区 已提交
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
                    before_reverse = num1[a] * 1000 + num1[b] * 100 + num1[c] * 10 + num1[d];
                    after_reverse = num2[d] * 1000 + num2[c] * 100 + num2[b] * 10 + num2[a];
                    //因为是颠倒之后所以第一位可以是0
                    if (after_reverse - before_reverse > -300 && after_reverse - before_reverse < -200)
                    //在200-300范围内,我们以正数为准
                    {
                        profit1[i][0] = before_reverse;
                        profit1[i][1] = after_reverse - before_reverse;
                        i++;
                    }
                    else if (after_reverse - before_reverse > 800 && after_reverse - before_reverse < 900)
                    //在800-900范围内
                    {
                        profit1[j][0] = before_reverse;
                        profit2[j][1] = after_reverse - before_reverse;
                        j++;
                    }
每日一练社区's avatar
每日一练社区 已提交
38 39 40 41
                }
            }
        }
    }
每日一练社区's avatar
每日一练社区 已提交
42 43 44 45 46 47 48 49 50 51 52 53
    int answer = 0;
    for (int a = 0; a < i; a++)
    {
        for (int b = 0; b < j; b++)
        {
            if (profit1[a][1] + profit2[b][1] == 558)
            {
                answer = profit1[a][0];
            }
        }
    }
    cout << answer << endl;
每日一练社区's avatar
每日一练社区 已提交
54
    return 0;
每日一练社区's avatar
每日一练社区 已提交
55
}