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

Олимпиадная задача на числа - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ прямоугольник http://www.cyberforum.ru/cpp-beginners/thread85750.html
помогие с решением . Найти параметры минимального по площади прямоугольника со сторонами, параллельными осям. Прямоугольник должен охватывать все точки из заданного на плоскости множества. на с++...
C++ №1 Нахождение Бесконечной суммы с точностью до Е Даны действительные числа Х, e (Х<>0, 0<e<1). Вычислить с точностью e бесконечную сумму и указать количество учтенных слагаемых. http://www.cyberforum.ru/cpp-beginners/thread85746.html
Логарифм C++
Дан код описание натурального логарифма ln()(разложение ряда), Кто может поправить код на С++, и описать Log2(a)=lna/ln2 Мучаюсь уже три месяца.Если кто знает еще описание куб. корня,прошу помочь ...
действительные числа a, b, c C++
Привет всем! Помогите плз решить задание. Делать нужно через функцию. (Я создавал тут уже подобную тему недавно, но там было не через функцию) Даны действительные числа a, b, c. Чтобы можно было...
C++ Не разберусь в плохом скане кода http://www.cyberforum.ru/cpp-beginners/thread85703.html
У Дейтлов есть код http://xmages.net/upload/f5785fa6.jpg Не разберусь, что написано в выделенном красной рамочкой фрагменте. Вижу, что while (grade = cin.get()))... А вот в районе EOF какая-то...
C++ массивы и структуры помогите, пожалуйста, доделать контрольную!!! 6.Просуммировать элементы двумерного массива. Значения элементов вводятся с клавиатуры. 7.Определить сумму и среднее значение элементов двумерного... подробнее

Показать сообщение отдельно
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
27.01.2010, 22:57
а веть это тоже самое что и построить магический квадрат!

Добавлено через 1 минуту
щас сделаю

Добавлено через 2 минуты
вот решение вашей задачи
исходник мой


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
#include <iostream>
#include <conio.h>
 
int main()
{
     unsigned short size=0;
     std::cout<<"vvedite razmernost kvadrata: ";
     std::cin>>size;
     if (!(size & 1)) {
         std::cout<<"razmernost kvadrata dolgna imet ne4etyu velichiny";
         getch();
         exit(0);
     }
     unsigned int max_size=size+(size-1);
     unsigned int**pMagic_square;
     pMagic_square=new unsigned int*[max_size];
     for (unsigned int i=0; i<max_size; i++)
     pMagic_square[i]=new unsigned int[max_size];
     unsigned int i;
     unsigned int j;
     for (i=0; i<max_size; i++)
     for (j=0; j<max_size; j++)
     pMagic_square[i][j]=0;
     unsigned int k=1;
     i=(max_size>>1);
     j=0;
     while (i<max_size){
         unsigned int i1=i;
         unsigned int j1=j;
         unsigned 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 kvadrat gotov: "<<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;
     }
     delete[] pMagic_square;
     getch();
     return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru