C++ 密码算术难题

C++ 密码算术难题,c++,puzzle,cryptarithmetic-puzzle,C++,Puzzle,Cryptarithmetic Puzzle,我试图解决这个密码算术难题2+2=4,我使用了原始的蛮力,但我不知道我在哪里出错。这里的想法是,它尝试从0到10的所有可能的数字组合,并且分配给字符的所有数字必须是不同的。根据定义 密码算术拼图是一种数学游戏,其中 有些数字用字母(或符号)表示。每封信 表示唯一的数字。目标是找到数字,以便 验证了给定的数学方程: 在这种情况下: 这段代码遍历所有可能的组合,直到找到满足问题的解决方案。它的约束在else if语句中给出。 第一个if语句简单地检查数字是否相同,如果相同,则跳过该迭代 我想要的输出

我试图解决这个密码算术难题2+2=4,我使用了原始的蛮力,但我不知道我在哪里出错。这里的想法是,它尝试从0到10的所有可能的数字组合,并且分配给字符的所有数字必须是不同的。根据定义

密码算术拼图是一种数学游戏,其中 有些数字用字母(或符号)表示。每封信 表示唯一的数字。目标是找到数字,以便 验证了给定的数学方程: 在这种情况下:

这段代码遍历所有可能的组合,直到找到满足问题的解决方案。它的约束在
else if
语句中给出。 第一个
if
语句简单地检查数字是否相同,如果相同,则跳过该迭代

我想要的输出是查看显示的所有正确的解决方案

int T, W, O, F, U, R;

for (T = 0; T < 10; T++)
{
    for (W = 0; W < 10; W++)
    {
        for (O = 0; O < 10; O++)
        {
            for (F = 0; F < 10; F++)
            {
                for (U = 0; U < 10; U++)
                {
                    for (R = 0; R < 10; R++)
                    {
                        if ((T == W) || (T == O) || (T == F) || (T == U) || (T == R) || (W == O) || (W == F) || (W == U) || (W == R) || (O == F) || (O == U) || (O == R) || (F == U) || (F == R) || (U == R))
                        {
                            continue;
                        }
                        else if (200 * T + 20 * W + 2 * O == F * 1000 + O * 100 + U * 10 + R * 0) {
                            cout << "T = " << T << endl
                                << "W = " << W << endl
                                << "O = " << O << endl
                                << "F = " << F << endl
                                << "U = " << U << endl
                                << "R = " << R << endl << endl;
                            break;
                        }
                    }
                }
            }
        }
    }
}

R*0
应该是
R*1


你得到的正确答案是
R=0
(因为当
R
0
R*0
R*1
相同)。我想你也应该从
1
开始
F
,因为通常密码不允许前导零。

R*0
应该是
R*1


你得到的正确答案是
R=0
(因为当
R
0
R*0
R*1
相同)。我想你也应该从
1
开始
F
,因为通常密码算法不允许前导零。

解释代码和它的作用没有什么害处,因为所有的循环都有点困难解释代码和它的作用没有害处,这有点难,因为所有的循环你是我的英雄:)@Greenbrown先生如果这回答了你的问题,你可以打它旁边的复选标记。你是我的英雄:)@Greenbrown先生如果这回答了你的问题,你可以打它旁边的复选标记。这将标记您的问题为已回答,并给您和M.M.一个小小的代表。
int T, W, O, F, U, R;

for (T = 0; T < 10; T++)
{
    for (W = 0; W < 10; W++)
    {
        for (O = 0; O < 10; O++)
        {
            for (F = 0; F < 10; F++)
            {
                for (U = 0; U < 10; U++)
                {
                    for (R = 0; R < 10; R++)
                    {
                        if ((T == W) || (T == O) || (T == F) || (T == U) || (T == R) || (W == O) || (W == F) || (W == U) || (W == R) || (O == F) || (O == U) || (O == R) || (F == U) || (F == R) || (U == R))
                        {
                            continue;
                        }
                        else if (200 * T + 20 * W + 2 * O == F * 1000 + O * 100 + U * 10 + R * 0) {
                            cout << "T = " << T << endl
                                << "W = " << W << endl
                                << "O = " << O << endl
                                << "F = " << F << endl
                                << "U = " << U << endl
                                << "R = " << R << endl << endl;
                            break;
                        }
                    }
                }
            }
        }
    }
}
T = 7
W = 6
O = 5
F = 1
U = 3
R = 0