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

Шахматы, конь - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ При работе с символами адрес вместо адреса иероглифы, а с символьными массивами вобще ошибки. http://www.cyberforum.ru/cpp-beginners/thread662525.html
/* 1) int a; int *b=&a; cout<<b<<endl; 2) char a; char *b=&a; cout<<b; */ Надо просто выдать адреса переменных. При работе с числами всё нормас. При работе с символами адрес вместо адреса иероглифы, а с символьными массивами вобще ошибки.
C++ Составить программу для вычисления значения выражения (без использования макрокоманды MAX и MIN) http://www.cyberforum.ru/cpp-beginners/thread662523.html
C++ задачка с натуральными числами
программа, которая в записи натурального числа минимальным вычеркиванием цифр оставляет подряд идущие цифры, которые 1) образ отрезок натурального ряда; 2) образ строго возрастающую последовательность
Заполнить двумерный массив C++
заполнить двухмерный массив размерности по правилу: 6 1 1 1 1 5 2 6 1 1 5 4 2 2 6 5 4 4 2 2 5 6 4 4 2 5 3 3 6 4 5 3 3 3 3 6
C++ Получение последней строки из файла http://www.cyberforum.ru/cpp-beginners/thread662474.html
Вообщем прощу помощи, мне нужно получить последнюю строку из текстового файла и запихнуть ее в string. Желательно не перебирая весь файл, он большой... пробовал file.getline file.seekg getline спасибо
C++ Вывод простых чисел от m до n Здравствуйте! Возникла проблемка с задачкой. Требуется вывести все простые числа от m до n, при условии, что 2<=m<=n<=1000000. Если нет простых, то вывести "Absent". Время 6 с. 1 проблема заключается в выводе "Absent". Почему-то, она его либо не выводит(если m=n),либо(если n не простое) она пишет все простые числа от m до n и вместо n пишет "Absent". 2 проблема заключается во времени... подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
03.10.2012, 06:02     Шахматы, конь
Цитата Сообщение от I.M. Посмотреть сообщение
Делайте рекурсивный алгоритм
можно рекурсией, можно с помощью очереди.
Вот здесь не самый оптимальный алгоритм (по времени), но для такого маленького поля и так пойдет:
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
#include <iostream>
using namespace std;
int main()
{
    int a[8][8]={0}, i, j, k, l, n, m, y;
    cout<<"k= "; cin>>k;
    cout<<"l= "; cin>>l;
    cout<<"m= "; cin>>m;
    cout<<"n= "; cin>>n;
    a[k-1][l-1]=1;
    for(y=1; y<3; y++)
    {
        for(i=0; i<8; i++)
            for(j=0; j<8; j++)
                if(a[i][j]==y)
                {
                    if(i>0)
                    {
                        if(j>1) a[i-1][j-2]=y+1;
                        if(j<6) a[i-1][j+2]=y+1;
                    }
                    if(i>1)
                    {
                        if(j>0) a[i-2][j-1]=y+1;
                        if(j<7) a[i-2][j+1]=y+1;
                    }
                    if(i<7)
                    {
                        if(j>1) a[i+1][j-2]=y+1;
                        if(j<6) a[i+1][j+2]=y+1;
                    }
                    if(i<6)
                    {
                        if(j>0) a[i+2][j-1]=y+1;
                        if(j<7) a[i+2][j+1]=y+1;
                    }
                }
    }
    if(a[m-1][n-1]==0)
        cout<<"No"<<endl;
    else
        cout<<"Yes"<<endl;
 return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru