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

Построение магического квадрата - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.67
KObotan
0 / 0 / 0
Регистрация: 20.10.2010
Сообщений: 21
20.10.2010, 22:57     Построение магического квадрата #1
Помогите построить магический квадрат (магическим квадратом n-ого порядка называется квадрат размерами nxn со вписанными в него натуральными числами от 1 до n2 так, что сумма их по всем горизонталям, вертикалям и диагоналям квадрата равна одному и тому же числу.)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2010, 22:57     Построение магического квадрата
Посмотрите здесь:

C++ Доработать код для магического квадрата
C++ Генерация магического квадрата
C++ Сравнить площадь круга и площадь квадрата , которые заданы сответствено радиусом r и стороной квадрата a
C++ Шифровать методом Магического квадрата (размер квадрата 9х9) С++
Массивы. Заполнить, разбить на квадраты размером 3х3. В центре каждого квадрата поместить сумму остальных элементов квадрата C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
quazee
14 / 14 / 0
Регистрация: 15.10.2010
Сообщений: 49
20.10.2010, 23:20     Построение магического квадрата #2
тебе к девиду блэйну или судоку открой
KObotan
0 / 0 / 0
Регистрация: 20.10.2010
Сообщений: 21
21.10.2010, 16:20  [ТС]     Построение магического квадрата #3
За совет с судоку спасибо, а вот что такое девид блейн не вкурсе)
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
21.10.2010, 16:49     Построение магического квадрата #4
Цитата Сообщение от KObotan Посмотреть сообщение
Помогите построить магический квадрат
писалось Ооочень давно,
не знаю почему так тогда сделал но выводятся квадраты только с нечетными сторонами
"ну это просто пример Вам"

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
#include <iostream>
 
int main()
{
     int size=0;
     std::cout<<"Enter size square: ";
     std::cin>>size;
 
     if (!(size & 1)) {
         std::cerr<<"size should be even";
         std::cin.get();
         exit(1);
     }
 
     int max_size=size+(size-1);
 
     int**pMagic_square = new  int*[max_size];
     for (int i=0; i<max_size; i++)
        pMagic_square[i]=new int[max_size];
 
     int i;
     int j;
     for (i=0; i<max_size; i++)
     for (j=0; j<max_size; j++)
     pMagic_square[i][j]=0;
      int k=1;
     i=(max_size>>1);
     j=0;
     while (i<max_size){
         int i1=i;
         int j1=j;
         int gr=size>>1; //gr-расстояние от границы увеличенного массива
         while (j1<((j+(max_size>>1))+1)){
             pMagic_square[i1][j1]=k;
             if ((i1>(gr)) && (j1<(gr))) //left
                pMagic_square[i1][j1+size]=k;
             if ((i1>(size+gr)-1) && (j1>(gr)))
                pMagic_square[i1-size][j1]=k; //down
             if ((i1<(gr)) && (j1>(gr)))
                pMagic_square[i1+size][j1]=k; //up
             if ((i1>(gr)) && (j1>(size+gr)-1))
                pMagic_square[i1][j1-size]=k; //right
             --i1;
             ++j1;
             ++k;
         }
         ++i;
         ++j;
     }
     std::cout<<std::endl<<"Magic square: "<<std::endl<<std::endl;
     for (i=(size-1)>>1; i<=max_size-(size>>1)-1; i++ ){
         for (j=(size-1)>>1; j<=max_size-(size>>1)-1; j++ )
             std::cout << pMagic_square[i][j] << " ";
         std::cout << std::endl;
     }
 
     for (int i = 0; i < max_size; ++i)
        delete[] pMagic_square[i];
        delete[] pMagic_square;
 
     std::cin.get();
     return 0;
}
Yandex
Объявления
21.10.2010, 16:49     Построение магического квадрата
Ответ Создать тему
Опции темы

Текущее время: 02:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru