Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 25.09.2013, 16:46   #1
sg-ua
Пользователь
 
Регистрация: 13.04.2013
Сообщений: 21
По умолчанию Код к задаче!

Самая задача:Разбить последовательность чисел от 1 до N^2 на N последовательностей так, чтобы все они состояли из N чисел и имели равные суммы. Результат вывести на экран. Если решений несколько – вывести любое из них.

Вот практический пример:
N=5
До:
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
После:
1 7 13 19 25
2 8 14 20 21
3 9 15 16 22
4 10 11 17 23
5 6 12 18 24

Может кто-то сможет написать на Си...буду благодарен
sg-ua вне форума Ответить с цитированием
Старый 25.09.2013, 17:33   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,666
По умолчанию

Есть нарабоки????
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 25.09.2013, 17:54   #3
sg-ua
Пользователь
 
Регистрация: 13.04.2013
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Bugrimov Посмотреть сообщение
Есть нарабоки????
Сожалению нет
sg-ua вне форума Ответить с цитированием
Старый 25.09.2013, 17:56   #4
BDA
Модератор
Заслуженный модератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 5,669
По умолчанию

Вот и всё решение (вроде) на C++:
Код:
#include <iostream>

using namespace std;

int
main()
{
    int N;
    cin >> N;
    for (int i = 0; i < N; ++i) {
        for (int j = 0; j < N; ++j)
            cout << (i + j) % N * N + j + 1 << '\t';
        cout << endl;
    }
}
Вам осталось перевести на Си и протестировать.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 25.09.2013, 18:01   #5
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Ну тут возможно есть какая-та зависимость между главной диагональю и расположением остальных элементов..
Загоняем главную диагональ в 1-ую строку. То что было левее - сразу после этого, то что было правее - еще ниже..
Если совсем заморочиться, то можно сначала доказать что именно такое расположение будет правильнным.
Poma][a вне форума Ответить с цитированием
Старый 25.09.2013, 18:26   #6
sg-ua
Пользователь
 
Регистрация: 13.04.2013
Сообщений: 21
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Вот и всё решение (вроде) на C++:
Код:
#include <iostream>

using namespace std;

int
main()
{
    int N;
    cin >> N;
    for (int i = 0; i < N; ++i) {
        for (int j = 0; j < N; ++j)
            cout << (i + j) % N * N + j + 1 << '\t';
        cout << endl;
    }
}
Вам осталось перевести на Си и протестировать.
Большое спасибо...я не думал что так просто будет
sg-ua вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сделать коментарии и проверьте код к задаче ргр по теории информатики mugik770 Помощь студентам 0 01.09.2012 18:26
ошибки в задаче(код внутри) skanku Общие вопросы C/C++ 2 10.01.2012 07:58
Скоро сессия напишите код по задаче nagabara Паскаль, Turbo Pascal, PascalABC.NET 2 26.06.2011 10:52
Нужен код к задаче dadalesha Помощь студентам 3 30.11.2010 09:32
помогите исправить код в задаче _grusha_ Помощь студентам 11 11.05.2009 21:05


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840