Я пытаюсь написать программу для поиска определенного четырехзначного числа со следующими условиями:
- Все четыре цифры разные .
- Цифра тысяч в три раза больше цифры десятков.
- Число нечетное.
- Сумма цифр равна 27.
Я пытаюсь написать эту программу. Я пробовал вложенные циклы for, повторяющие каждую цифру до тех пор, пока не будут выполнены условия (когда разрыв завершает циклы), как показано ниже:
Код: Выделить всё
int a = 1;
int b = 1;
int c = 1;
int d = 1;
for (a = 1; a < 9; a++) {
for (b = 1; b < 9; b++) {
for (c = 1; c < 9; c++) {
for (d = 1; d < 9; d++) {
if (a + b + c + d == 27 && a == 3 * c && a != b && a != c
&& a != d && b!= c && b != d && c != d && d % 2 != 0) {
break;
}
}
}
}
}
Я ожидал, что цифры a, b, c, d дадут мне число, которое будет соответствовать всем условиям в операторе if выше и, следовательно, сломается. Вместо этого abcd всегда равен 9999. Почему это происходит? Как я неправильно использую перерыв?
Подробнее здесь:
https://stackoverflow.com/questions/572 ... s-expected