Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/89: Рейтинг темы: голосов - 89, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 31.07.2014
Сообщений: 8

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

31.07.2014, 19:17. Показов 18473. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Динамическое программирование

Ход конем
(Время: 1 сек. Память: 16 Мб)
Шахматная ассоциация решила оснастить всех своих сотрудников такими телефонными номерами, которые бы набирались на кнопочном телефоне ходом коня. Например, ходом коня набирается телефон 340-49-27. При этом телефонный номер не может начинаться ни с цифры 0, ни с цифры 8.

Требуется написать программу, определяющую количество телефонных номеров длины N, набираемых ходом коня.

Входные данные

Входной файл INPUT.TXT содержит натуральное число N (N <= 100).

Выходные данные

В выходной файл OUTPUT.TXT выведите искомое количество телефонных номеров.


Помогите пожалуйста, сам решить не могу. Видел коды с других тем, но они пролетают по времени, заранее благодарен.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.07.2014, 19:17
Ответы с готовыми решениями:

Вывести на печать телефонные номера, что начинаются на 22, которые имеют наибольший долг
задание: список абонентов телефонной сети:почтовый номер , ФИО , адрес , номер телефона (ввести по шаблону 00-000-000) долг по оплате ....

Обойти шахматную доску ходом коня
Обязательные условия: 1. Рекурсивный алгоритм. 2. Размер доски вводит пользователь. 3. Использовать динамический массив. #include...

Покрытие шахматной доски ходом коня
4. Покрытие шахматной доски ходом коня.

17
 Аватар для Хедин
76 / 71 / 55
Регистрация: 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;
}
вызов функции будет слегка другой, надо будет вызвать функцию для всех необходимых первых номеров. Насчет правильности вроде норм
0
221 / 166 / 47
Регистрация: 17.07.2012
Сообщений: 587
31.07.2014, 21:38
Хедин, 1) прога когда-нибудь в свитч заходит??? 2)Это не ДП.
0
 Аватар для Хедин
76 / 71 / 55
Регистрация: 17.05.2014
Сообщений: 301
31.07.2014, 21:49
SlavaSSU, оу, мой косяк, сейчас поправлю

Добавлено через 5 минут
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 4
 
int check(int x, int lvl)
{
    if (lvl == n-1)
        return (x == 4 || x == 6 ? 3 : 2);
    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;
}
0
221 / 166 / 47
Регистрация: 17.07.2012
Сообщений: 587
31.07.2014, 22:12
C++ (Qt) Скопировано
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <iostream>
 
using namespace std;
 
typedef long long li;
 
const int dxh[] = {-2, -2, -1, 1, 2, 2, 1, -1};
const int dyh[] = {-1, 1, 2, 2, 1, -1, -2, -2};
 
bool in(int i, int j)
{
    return i <= 3 || j == 2;
}
 
li dp[111][5][5];
 
int main()
{
    int n;
    cin >> n;
 
    for(int i = 1; i <= 3; i++)
        for(int j = 1; j <= 3; j++)
            dp[1][i][j] = 1;
    dp[1][3][2] = 0;
 
    for(int k = 1; k < n; k++)
    {
        for(int i = 1; i <= 4; i++)
        {
            for(int j = 1; j <= 3; j++)
            {
                for(int dir = 0; dir < 8; dir++)
                {
                    int ni = i + dxh[dir];
                    int nj = j + dyh[dir];
 
                    if(in(ni, nj))
                    {
                        dp[k + 1][ni][nj] += dp[k][i][j];
                    }
                }
            }
        }
    }
 
    li ans = 0;
    for(int i = 1; i <= 4; i++)
        for(int j = 1; j <= 3; j++)
            ans += dp[n][i][j];
 
    cout << ans << endl;
    return 0;
}
0
0 / 0 / 0
Регистрация: 31.07.2014
Сообщений: 8
01.08.2014, 18:49  [ТС]
Хедин, presentation error

Добавлено через 51 секунду
Вроде исправил, но все равно пролетает по времени

Добавлено через 43 секунды
0
Заблокирован
03.08.2014, 20:37
Neoks,SlavaSSU,Хедин -все ответы не верны.
0
221 / 166 / 47
Регистрация: 17.07.2012
Сообщений: 587
03.08.2014, 20:58
Trwsdf, а примеров входных и выходных данных нет?

Добавлено через 12 минут
Trwsdf, у меня в переполнении косяк? или в идее?
0
Заблокирован
03.08.2014, 21:13
Цитата Сообщение от SlavaSSU Посмотреть сообщение
Trwsdf, а примеров входных и выходных данных нет?
Добавлено через 12 минут
Trwsdf, у меня в переполнении косяк? или в идее?
У вас вообще не правильный вывод.
0
 Аватар для Kuzia domovenok
4265 / 3323 / 925
Регистрация: 25.03.2012
Сообщений: 12,526
Записей в блоге: 1
03.08.2014, 21:22
Вас чётко всех просили сделать ДП! А вы что отвечаете?
0
221 / 166 / 47
Регистрация: 17.07.2012
Сообщений: 587
03.08.2014, 22:18
Trwsdf, ну так дай тест и правильный ответ
0
Заблокирован
03.08.2014, 23:14
Цитата Сообщение от SlavaSSU Посмотреть сообщение
Trwsdf, ну так дай тест и правильный ответ
lvl 1 2 3 5 ... 55
8 16 36 188 ... 177456951844650614784

Так должно быть
0
 Аватар для dr.curse
404 / 360 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
03.08.2014, 23:24
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
28
29
30
31
32
33
34
35
36
37
#include <stdio.h>
void sum(int *a,int *b,int *c,int *n)
{
    int i,t;
    for (i=t=0;i<*n+3;i++)
    {
        t+=a[i]+b[i];
        c[i]=t%10;
        t/=10;
    }
    *n+=3;
    while (!c[*n])
        --*n;
}
int d[20][200][200],s[200],n,i,j,l,m,p[20][5]={{2,4,6},{2,6,8},{2,7,9},{2,4,8},{3,0,3,9},{0},{3,0,1,7},{2,2,6},{2,1,3},{2,2,4}};
int main()
{
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    for (i=0;i<10;i++)
        d[i][0][0]=1;
    scanf("%d",&n);
    for (i=1;i<n;i++)
        for (j=0;j<10;j++)
            for (d[j][i][0]=l=0;l<p[j][0];l++)
            {
                m=100;
                sum(d[j][i],d[p[j][l+1]][i-1],d[j][i],&m);
            }
    for (m=100,i=1;i<10;i++)
        if (i!=8)
             
            sum(s,d[i][n-1],s,&m);
    for (i=m;i>=0;i--)
        printf("%d",s[i]);
    return 0;
}
1
221 / 166 / 47
Регистрация: 17.07.2012
Сообщений: 587
04.08.2014, 00:08
Trwsdf, да, косяк был в функии in. но теперь у меня там все переполняется(

C++ (Qt) Скопировано
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream>
 
using namespace std;
 
typedef long long li;
typedef unsigned long long uli;
 
const int dxh[] = {-2, -2, -1, 1, 2, 2, 1, -1};
const int dyh[] = {-1, 1, 2, 2, 1, -1, -2, -2};
 
bool in(int i, int j)
{
    return (i >= 1 && i <= 3 && j >= 1 && j <= 3) || (i == 4 && j == 2);
}
 
uli dp[111][5][5];
 
int main()
{
    int n;
    cin >> n;
 
    for(int i = 1; i <= 3; i++)
        for(int j = 1; j <= 3; j++)
            dp[1][i][j] = 1;
    dp[1][3][2] = 0;
 
    for(int k = 1; k < n; k++)
    {
        for(int i = 1; i <= 4; i++)
        {
            for(int j = 1; j <= 3; j++)
            {
                cerr << k << ' ' << i << ' ' << j << ' ' << dp[k][i][j] << endl;
                for(int dir = 0; dir < 8; dir++)
                {
                    int ni = i + dxh[dir];
                    int nj = j + dyh[dir];
 
                    if(in(ni, nj))
                    {
                        dp[k + 1][ni][nj] += dp[k][i][j];
                    }
                }
            }
        }
    }
 
    uli ans = 0;
    for(int i = 1; i <= 4; i++)
        for(int j = 1; j <= 3; j++)
            ans += dp[n][i][j];
 
    cout << ans << endl;
    return 0;
}
0
Заблокирован
04.08.2014, 00:16
Вот так код, абсолютно нечитаемо и неподдерживаемо. Автор унес в могилу всю его поддержку. Однако видно, что кто то провел много времени составляя кубы ,оптимизируя, и тд. стараясь выпендриться. И конечно же, щас начнет доказывать, что все сделано на пару минут, но мне наплевать.
На C# главное проще и быстрей пишется, - что я за 10 минут и накидал собсно.

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
        int level = 1000;
            if (level <= 2) Console.Write((8 * level).ToString());
            else
            {
                System.Numerics.BigInteger[] num = new System.Numerics.BigInteger[9];
                System.Numerics.BigInteger[] index = new System.Numerics.BigInteger[9];
                System.Numerics.BigInteger buffer = new System.Numerics.BigInteger();
                System.Numerics.BigInteger sum = 0;
                for (int d = 1; d < 9; d = (d + 1 == 7) ? d + 2 : d + 1)
                {
                    if (d == 4 || d == 5) num[d] = 3; else num[d] = 2;
                    for (int k = 2; k < level; k++)
                    {
                        for (int di = 0; di < 9; di++)
                        {
                            index[di] = num[di];
                            num[di] = 0;
                        };
                        for (int i = 0; i < 9; i++)
                            if (index[i] != 0)
                                switch (i)
                                {
                                    case 0: buffer = 3 * index[i] / 2; num[4] += buffer; num[5] += buffer; break;
                                    case 1: num[5] += 3 * index[i] / 2; num[7] += index[i]; break;
                                    case 2: num[6] += index[i]; num[8] += index[i]; break;
                                    case 3: num[4] += 3 * index[i] / 2; num[7] += index[i]; break;
                                    case 4: buffer = 2 * index[i] / 3; num[3] += buffer; num[8] += buffer; num[0] += buffer; break;
                                    case 5: buffer = 2 * index[i] / 3; num[1] += buffer; num[6] += buffer; num[0] += buffer; break;
                                    case 6: num[2] += index[i]; num[5] += 3 * index[i] / 2; break;
                                    case 7: num[1] += index[i]; num[3] += index[i]; break;
                                    case 8: num[2] += index[i]; num[4] += 3 * index[i] / 2; break;
                                }
                    }
                    for (int di = 0; di < 9; di++)
                    {
                        sum += num[di];
                        num[di] = 0;
                    }
                }
                Console.Write(sum.ToString());
            }
            Console.ReadLine();
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
04.08.2014, 21:25
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
/////////////////////////////////////////////////////////////////////////////////////////
//ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
//
//ХОД КОНЕМ
//(Время: 1 сек. Память: 16 Мб)
//Шахматная ассоциация решила оснастить всех своих сотрудников такими телефонными номерами, 
//которые бы набирались на кнопочном телефоне ходом коня. Например, ходом коня набирается 
//телефон 340-49-27. При этом телефонный номер не может начинаться ни с цифры 0, ни с цифры 8.
//
//Требуется написать программу, определяющую количество телефонных номеров длины N, 
//набираемых ходом коня.
//
//ВХОДНЫЕ ДАННЫЕ
//
//Входной файл INPUT.TXT содержит натуральное число N (N <= 100).
//
//ВЫХОДНЫЕ ДАННЫЕ
//
//В выходной файл OUTPUT.TXT выведите искомое количество телефонных номеров.
/////////////////////////////////////////////////////////////////////////////////////////
#include <iomanip>
#include <iostream>
#include <limits>
#include <sstream>
#include <string>
/////////////////////////////////////////////////////////////////////////////////////////
typedef unsigned long long  T_ull;
typedef std::string         T_str;
/////////////////////////////////////////////////////////////////////////////////////////
const   T_ull   MAX_ULL             =   std::numeric_limits<T_ull>::max();
const   int     TEL_NUM_LEN_MAX     =   103;
/////////////////////////////////////////////////////////////////////////////////////////
template< typename  T >
T_str   to_str( T   val )
{
    std::ostringstream  sout;
    sout    <<  val;
    return  sout.str();
}
/////////////////////////////////////////////////////////////////////////////////////////
class   T_big_int
{
    //-----------------------------------------------------------------------------------
    static  const   T_ull   FACTOR  =   T_ull(1e18);
    //-----------------------------------------------------------------------------------
    bool    is_overflow_;
    T_ull   head_;
    T_ull   tail_;
    //-----------------------------------------------------------------------------------
    friend  std::ostream    &   operator<<
        (
            std::ostream        &   os,
            T_big_int   const   &   big_int
        )
    {
        if( big_int.is_overflow_ )
        {
            os  <<  "overflow";
        }
        else
        {
            int     num_len     =   0;
            T_str   head_str    =   to_str( big_int.head_ );
            T_str   tail_str    =   to_str( big_int.tail_ );
 
            if( big_int.head_ > 0 )
            {
                num_len     +=  head_str.size();
                os          <<  head_str;
            }
 
            num_len     +=  tail_str.size();
 
            os          <<  tail_str
                        <<  std::endl
                        <<  "count_len = "
                        <<  num_len;
        }//else
 
        return  os;
    }
    //-----------------------------------------------------------------------------------
public:
    //-----------------------------------------------------------------------------------
    T_big_int( T_ull    ull = 0 )
        :
        is_overflow_    (),
        head_           (),
        tail_           ( ull )
    {
        normalize();
    }
    //-----------------------------------------------------------------------------------
    T_big_int   &   operator+=  ( T_big_int     const   &   i )
    {
        is_overflow_    =       is_overflow_
                            ||  i.is_overflow_;
 
        if( !is_overflow_ )
        {
            if( head_ > MAX_ULL - i.head_ )
            {
                is_overflow_    =   true;
            }
            else
            {
                head_   +=  i.head_;
                tail_   +=  i.tail_;
            }
 
            normalize();
        }//if
 
        return  *this;
    }
    //-----------------------------------------------------------------------------------
private:
    //-----------------------------------------------------------------------------------
    void    normalize()
    {
        if( !is_overflow_ )
        {
            T_ull   head_delta  =  tail_ / FACTOR;
 
            if( head_delta > MAX_ULL - head_ )
            {
                is_overflow_    =   true;
            }
            else
            {
                head_   +=  head_delta;
                tail_   %=  FACTOR;
            }//else
        }//if
    }
    //-----------------------------------------------------------------------------------
};
/////////////////////////////////////////////////////////////////////////////////////////
T_big_int     count_tel_numbers[10][TEL_NUM_LEN_MAX]    =   {0};
/////////////////////////////////////////////////////////////////////////////////////////
int     prev_digits_for[10][3]  =   {
                                        { 4,    6,  -1  },  //0
                                        { 6,    8,  -1  },  //1
                                        { 7,    9,  -1  },  //2
 
                                        { 4,    8,  -1  },  //3
                                        { 0,    3,  9   },  //4
                                        { -1,   -1, -1  },  //5
 
                                        { 0,    1,  7   },  //6
                                        { 2,    6,  -1  },  //7
                                        { 1,    3,  -1  },  //8
 
                                        { 2,    4,  -1  }   //9
                                    };
/////////////////////////////////////////////////////////////////////////////////////////
T_big_int   get_count_tel_numbers_val
    (
        int     first_digit,
        int     num_len_cur
    )
{
    T_big_int   res     =   0;
 
    for( int  j = 0; j < 3; ++j )
    {
        int     prev_digit  =   prev_digits_for[ first_digit ][ j ];
 
        if  (
                prev_digit >= 0
            )
        {
            res     +=  count_tel_numbers[ prev_digit ][ num_len_cur - 1 ];
        }//if
    }//for
 
    return  res;
}
/////////////////////////////////////////////////////////////////////////////////////////
T_big_int   count_tel_numbers_with_len( int     num_len )
{
    for( int  num_len_cur = 1; num_len_cur <= num_len; ++num_len_cur )
    {
        for( int  first_digit = 0; first_digit < 10; ++first_digit )
        {
            if( num_len_cur == 1 )
            {
                count_tel_numbers[first_digit][num_len_cur] = 1;
            }
            else
            {
                count_tel_numbers[first_digit][num_len_cur]     =   get_count_tel_numbers_val
                                                                        (
                                                                            first_digit,
                                                                            num_len_cur
                                                                        );
            }//else
        }//for
    }//for
 
    T_big_int   res     =   0;
 
    for( int  first_digit = 0; first_digit < 10; ++first_digit )
    {
        if  (
                    first_digit     !=  0
                &&  first_digit     !=  8
            )
        {
            res     +=  count_tel_numbers[ first_digit ][ num_len ];
        }//if
    }//for
 
    return  res;
}
/////////////////////////////////////////////////////////////////////////////////////////
template< typename  T >
void    print_prompt_and_input_val_in_segment
    (
        T_str   const   &   prompt,
        T               &   val,
        T                   left_bound,
        T                   right_bound
    )
{
    do
    {
        std::cout   <<  prompt;
        std::cin    >>  val;
    }
    while   (
                    val             <   left_bound
                ||  right_bound     <   val
            );
}
/////////////////////////////////////////////////////////////////////////////////////////
int     main()
{
    for(;;)
    {
        int     num_len     =   0;
        T_str   prompt      =       T_str( "Phone number length (" )
                                +   to_str( 1 )
                                +   ".."
                                +   to_str( TEL_NUM_LEN_MAX )
                                +   "): ";
 
        print_prompt_and_input_val_in_segment
            (
                prompt,
                num_len,
                1,
                TEL_NUM_LEN_MAX
            );
 
        std::cout   <<  count_tel_numbers_with_len( num_len )
                    <<  std::endl
                    <<  std::endl
                    <<  std::endl
                    <<  std::endl;
    }//for
}
0
Заблокирован
05.08.2014, 01:05
C++ Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int level = 20;
    unsigned long long sum = 0;
    char init[][3] = { { 4, 5, -1 }, { 5, 7, -1 }, { 6, 8, -1 }, { 4, 7, -1 }, { 3, 8, 0 }, { 1, 6, 0 }, { 2, 5, -1 }, { 1, 3, -1 }, { 2, 4, -1 } };
    unsigned long long data[2][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0}};
    for (int d = 1; d < 9; d = (d + 1 == 7) ? d + 2 : d + 1) {
        data[0][d] = 1;
        for (int k = 1; k < level; k++) {
            for (int di = 0; di < 9; di++) {
                data[1][di] = data[0][di];
                data[0][di] = 0;
            };
            for (int i = 0; i < 9; i++)
                if (data[1][i] != 0)
                    for (int ci = 0; ci < ((i == 4 || i == 5) ? 3 : 2); ci++) data[0][init[i][ci]] += data[1][i];
        }
        for (int di = 0; di < 9; di++) {
            sum += data[0][di];
            data[0][di] = 0;
        }
    };
    printf("%i", sum);
0
2 / 2 / 0
Регистрация: 25.10.2018
Сообщений: 289
26.03.2019, 18:01
dr.curse, а вы можете объяснить свой код, пожалуйста?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.03.2019, 18:01
Помогаю со студенческими работами здесь

Номера, набираемые ходом коня
Шахматная ассоциация решила оснастить всех своих сотрудников такими телефонными номерами, которые бы набирались на кнопочном телефоне ходом...

Если возможно, с поля (k, l) одним ходом коня попасть на поле (m, n)
Поле шахматной доски определяется парой натуральных чисел, первое из которых задает номер вертикали, а второе - номер горизонтали. Даны...

Найти способ обойти все поля ходом шахматного коня
Доброго времени суток! Задача: Для шахматной доски размера k*k (k&gt;=5) найти способ обойти все поля ходом шахматного коня. Не...

Теория графов (ходом коня пройти по всем ячейкам шахматной доски)
можно ли ходом коня пройти по всем ячейкам шахматной доски (8х8)? если можно напишите алгоритм программы.

Определить, возможно ли попасть из одной клетки в другую одним ходом шахматного коня
Заданы две клетки шахматной доски. Требуется определить, возможно ли попасть из одной клетки в другую одним ходом шахматного коня, а если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Миграция монолита в Event-Driven микросервисную архитектуру на C#
stackOverflow 11.04.2025
Монолитная архитектура – классический подход к разработке программного обеспечения. Это приложение, построенное как единое целое, где все компоненты тесно связаны между собой. Большинство проектов. . .
Go в Kubernetes: Управление ресурсами
golander 11.04.2025
Разработчики Go-приложений в Kubernetes часто сталкиваются с неожиданными проблемами производительности и даже внезапными отказами контейнеров. Причина этого кроется в особенностях взаимодействия. . .
Агрегаты и сущности в DDD микросервисах
Javaican 10.04.2025
Разработка современных программных систем часто приводит на распутье: монолит или микросервисы? Даже при выборе микросервисной архитектуры многие команды сталкиваются с проблемой правильного. . .
Многопоточность в C#: Task и параллельное программирование
UnmanagedCoder 10.04.2025
Современные процессоры уже давно перестали наращивать тактовую частоту в пользу увеличения количества ядер. Это создало интересную ситуацию: разработчики, привыкшие к последовательному. . .
Линейное решение нелинейной задачи будет иметь приблизительный результат вычисления для метода обработки данных из double buffering.
Hrethgir 10.04.2025
В продолжение Вообще задача стояла не так остро - 1. Во вторых прямое соотношение углов через соотношения координат отрезков - невозможно. Но тем не менее. Эта LM дала ответ похожий на нормальный. . . .
Переменные в Python
py-thonny 10.04.2025
Переменная в программировании — это символическое имя, связанное с областью памяти, в которой хранится значение. Она позволяет получать доступ к данным через понятные человеку идентификаторы, а не. . .
Многопоточность в C#: Task и асинхронные операции
UnmanagedCoder 10.04.2025
Многопоточность позволяет выполнять несколько операций одновременно, что важно для решения двух основных задач: повышения скорости выполнения вычислительно-сложных операций и сохранения отзывчивости. . .
Линейное решение не линейной задачи (емкость вычислений в сравнении с традиционными решениями пока не определена).
Hrethgir 10.04.2025
В рамках предстоящих вычислений пришлось (да, я тоже знаю про корень числа, и про степеня, и прочие теоремы, но. . . ) найти способ нахождения отношения двух углов. . . .
Запуск контейнеров Docker на ARM64
Mr. Docker 09.04.2025
Появление таких решений, как Apple M1/ M2, AWS Graviton, Ampere Altra и Raspberry Pi, сделало использование ARM-систем обыденностью для многих разработчиков и DevOps-инженеров. При этом Docker,. . .
Vue SFC компонент на PHP с Fusion
Jason-Webb 09.04.2025
PHP на сервере и JavaScript на клиенте — классическое сочетание, которое, несмотря на свою эффективность, создает определенный когнитивный диссонанс при разработке. В этом контексте появляются. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер