@nimbus214

Что значит эта ошибка?

Компилятор не компилирует код, что требуется не понятно.
#include <iostream>
using namespace std;
int main()
{
	setlocale(LC_ALL, "Rus");
	int dedka, babka, repka;
	long int skazka;
	for (int d = 0; d < 10; d++) {
		for (int e = 0; e < 10; e++) {
			for (int k = 0; k < 10; k++) {
				for (int a = 0; a < 10; a++) {
					for (int b = 0; b < 10; b++) {
						for (int r = 0; r < 10; r++) {
							for (int p = 0; p < 10; p++) {
								for (int s = 0; s < 10; s++) {
									for (int k = 0; k < 10; k++) {
										for (int z = 0; z < 10; z++) {
											dedka = d * 10000 + e * 1000 + d * 100 + k * 10 + a;
											babka = b * 10000 + a * 1000 + b * 100 + k * 10 + a;
											repka = r * 10000 + e * 1000 + p * 100 + k * 10 + a;
											skazka = s * 100000 + k * 10000 + a * 1000 + z * 100 + k * 10 + a;
											if ((dedka + babka + repka == skazka) && (dedka > babka > repka)) {
												cout << dedka << " + " << babka << " + " << repka << " = " << skazka << endl;
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
	return 0;
}

61560b64c17ab655971858.jpeg
  • Вопрос задан
  • 214 просмотров
Решения вопроса 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Судя по всему, когда вы проект создавали, вы его не сделали консольным. Пересоздайте проект (кода у вас немного, его можно скопировать). Внимательно выбирайте new console application.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Adamos
@Adamos
Есть такое старое мудрое правило: если переменных больше трех, их нужно называть осмысленно, потому что человек за ними уследить уже не способен. И получается вот такая хрень:
for (int k = 0; k < 10; k++) {
        for (int a = 0; a < 10; a++) {
          for (int b = 0; b < 10; b++) {
            for (int r = 0; r < 10; r++) {
              for (int p = 0; p < 10; p++) {
                for (int s = 0; s < 10; s++) {
                  for (int k = 0; k < 10; k++) {
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Предварительным анализом можно сильно сократить количество вариантов.
Довольно легко получаются ограничения:
a = 0
k = 5
e ∈ {4, 9}
s ∈ {1, 2}
Это уже сокращает перебор в 2500 раз.
Чуть посложнее, но тоже вполне выводимо:
d + b + r ∈ {13, 14, 23, 24} => r ∈ {13 - d - b, 14 - d - b, 23 - d - b, 24 - d - b}, d + b ≥ 4
d + b + p ≥ 19 => p ∈ [19 - d - b, 9], 10 ≤ d + b ≤ 18
d > b > r => d ∈ [3, 9], b ∈ [max(2, 10 - d), min(d - 1, 18 - d)],
r ∈ [max(1, 13 - d - b), min(24 - d - b, b - 1)]
Получаем
int a = 0;
int k = 5;
for (int e = 4; e <= 9; e += 5) {
    for (int s = 1; s <= 2; s += 1) {
        for (int d = 3; d <= 9; d += 1) {
            for (int b = max(2, 10 - d); b <= min(d - 1, 18 - d); b += 1) {
                for (int r = max(1, 13 - d - b); r <= min(b - 1, 24 - d - b); r += 1) {
                    for (int p = 19 - d - b; p <= 9; p += 1) {
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы