nkorobkov
@nkorobkov

Правильно ли я решил задачку из ВК?

Наткнулся вконтаче на такую картинку:
0XEfO0WID88.jpg
В общем, посчитал количество вариантов (512) и чет перехотелось считать вручную. Решил написать программу на Си, которая переберет все варианты, и если выйдет подходящая комбинация, то выведет её на экран.
Вот что у меня получилось:
#include <stdio.h>

int main()
{
    int arr[8];
    int i, j, k, res;
    for(i = 0; i < 8; i++){
        printf("Enter Arr[%d]\n", i);
        scanf("%d", &arr[i]);
    }
    for(i = 0; i < 8; i++){
        printf("%d\n", arr[i]);
    }
     for(i = 0; i < 8; i++){
        for(j = 0; j < 8; j++){
            for(k = 0; k < 8; k++){
                res = arr[i] + arr[j] + arr[k];
                printf("%d + %d + %d = %d\n", arr[i], arr[j], arr[k], res);
                if( (arr[i] + arr[j] + arr[k]) == 30 ) printf("First = %d\n Second = %d\n Third = %d\n", arr[i], arr[j], arr[k]);
            }
        }
    }
    return 0;
}

В итоге, подходящей комбинации не нашлось. Но вот в чем загвоздка: в консоль вывелись не все значения, а только те, которые начинаются с 7+7+1...
Может быть, я допустил ошибку и перебрал не все варианты? Или размер консоли ограничен, и некоторые значения просто не выводятся? Помогите и не ругайте, я только учусь)
  • Вопрос задан
  • 1232 просмотра
Решения вопроса 2
arutyunov
@arutyunov
Mooza.ru — Делаем сайты
Мне кажется или сложение 3 нечетных чисел даст нечетное число в любом случае?
Ответ написан
@deleted2-brainick
Можно решить так: 3!+11+13 = 6+11+13 = 30.
Но по смыслу задачи неясно можно ли использовать факториал. Как верно заметил Кирилл Арутюнов , сумма трёх нечетных чисел всегда будет нечётна, поэтому решения не существует, если не использовать что-то дополнительное. К слову сказать, перед нами наглядное доказательство почему программист должен хоть немного знать математику.

UPD. Поиск даёт что для решения нужно использовать 15ричную систему счисления.
15 + 15 + 5 = 30 в 15ричной системе.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
PavelK
@PavelK
На первый взгляд всё правильно.
P.S. по-моему задачка решения в лоб не имеет и похоже не обойтись дополнительными действиями (вычисления в скобках, к примеру или факториал)
Ответ написан
@Neonoviiwolf
помнится есть три варианта
1)десятичные 13,1 складываем и т.д.
2)переворачиваем 9-ку
3) пишем 3 и ещё одну 3, только зеркально в первом квадрате (будет 8)
Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы