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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
22032203
Сообщений: n/a
#1

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

14.01.2010, 16:39. Просмотров 564. Ответов 1
Метки нет (Все метки)

Условие задачи:
Задано 121 натуральне число : 1...121 .Разбить числа в 11 групп так,чтобы каждая группа вмещала 11 чисел,каждое число принадлежало только 1 группе,сумма чисел в каждой группе была одинаковой.

прога нужна на с++ ... заранее большое спасибо!
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2010, 16:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Олимпиадная задача на числа (C++):

Задача на дп (олимпиадная) - C++
Здравствуйте, имеется данная задача, основная проблема состоит в том, что мое решение никак не проходит по времени. Пробовал писать через...

C++. Олимпиадная задача - C++
Здравствуйте! Код не проходит какой-то тест, может алгоритм не правильный. И если не правильный, то как исправить? Помогите найти ошибку....

Олимпиадная задача - C++
Дошел до этой олимпиадной задачи и впал в ступор. Нагуглил, что можно решить с помощью матриц, либо с помощью графов, но какого-то...

Олимпиадная задача - C++
Алфавит мурмарианской системы счисления включает три цифры - 1, 2 и 3. Одна из популярных социальных сетей "НаМурмаре" при регистрации...

Олимпиадная задача - C++
Есть такая задачка: В ряд выписаны числа, состоящие только из цифр 1, 3, 7: 1, 3, 7, 11, 13, 17, ... Необходимо по номеру N определить...

Олимпиадная задача - C++
Был в прошлом году на олимпиаде по программированию и там была такая задача: После запуска программы пользователь должен начать...

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

Добавлено через 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2010, 22:57
Привет! Вот еще темы с ответами:

Олимпиадная задача - C++
#include &lt;cstdio&gt; #include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; int main() { unsigned int N; cout&lt;&lt;&quot;N=&quot;;...

Олимпиадная задача - C++
Вот наткнулся сегодня на такую задачу: Всем известно, что в позапрошлом веке ковбои занимались перегоном скота. Перегон скота всегда...

Сладкая олимпиадная задача - C++
Дан торт который порезан на m*n равных кусков и вы хотите иметь точно один фрукт на каждом куске. Давайте обозначим f(m,n) количество...

Анаграммы(олимпиадная задача) - C++
Cтрока S1 называется анаграммой строки S2, если она получается из S2 перестановкой символов. Даны строки S1 и S2. Напишите программу,...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru