Форум программистов, компьютерный форум CyberForum.ru

Телефонные номера, которые набираются на кнопочном телефоне ходом коня - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ А как ваше начальство относится к новым стандартам и boost? http://www.cyberforum.ru/cpp-beginners/thread1236888.html
Разрешают ли вам использовать С++11, boost? Если нет - чем обосновывают. Если сначала нет, потом да - расскажите как этого добились. Здесь же можно указывать и в какой IDE работаете. Просьба отвечать лишь тех, кто работает в корпоративном секторе.
C++ Что означает знак двойного двоеточия "::"? не могу я найти http://www.cyberforum.ru/cpp-beginners/thread1236831.html
C++ Ошибка при запуске проекта: error: no match for ‘operator>>’
В NetBeans создал проект: Добавлено через 1 минуту #include <iostream> #include <string> using namespace std; int main() {
C++ Как понять список формальных параметров функции Bar?
class Foo { void friend Bar(Foo & foo); private: int data;
C++ Сравнение символьных буфферов (массивов) http://www.cyberforum.ru/cpp-beginners/thread1236675.html
Добрый всем день. Заранее прошу прощения, если такая тема уже существует или существовала. Не смог корректно сформулировать поисковый запрос. Я новичок в C++. Задача состоит в том, чтобы добавить команду на отключение, после отправки сообщения со словом quit через сокеты от клиента ===> серверу. С задачами клиента и сервера я справился, более или менее. Однако попытка сравнения, ничего не...
C++ С чего начать писать свои API для приложений можно ссылки Заранее спаисибо) подробнее

Показать сообщение отдельно
Хедин
73 / 68 / 36
Регистрация: 17.05.2014
Сообщений: 301
31.07.2014, 21:25     Телефонные номера, которые набираются на кнопочном телефоне ходом коня
Neoks, вот так подойдет? По времени не проверял
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h>
 
#define n 3
 
int check(int x, int lvl)
{
    if (lvl == n-1 && (x == 4 || x == 6)) return 3;
        else return 6;
    switch (x)
    {
    case 1: return check(8, lvl+1)+check(6, lvl+1);
    case 2: return check(7, lvl+1)+check(9, lvl+1);
    case 3: return check(4, lvl+1)+check(8, lvl+1);
    case 4: return check(3, lvl+1)+check(9, lvl+1)+check(0, lvl+1);
    case 6: return check(1, lvl+1)+check(7, lvl+1)+check(0, lvl+1);
    case 7: return check(2, lvl+1)+check(6, lvl+1);
    case 8: return check(1, lvl+1)+check(3, lvl+1);
    case 9: return check(4, lvl+1)+check(2, lvl+1);
    case 0: return check(4, lvl+1)+check(6, lvl+1);
    }
}
 
int main(int argc, char *argv[])
{
    printf("%d\n", check(0, 1));
    return 0;
}
вызов функции будет слегка другой, надо будет вызвать функцию для всех необходимых первых номеров. Насчет правильности вроде норм
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru