Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2013, 17: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, 18:33   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

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

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

Вот и всё решение (вроде) на 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, 19:01   #5
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Ну тут возможно есть какая-та зависимость между главной диагональю и расположением остальных элементов..
Загоняем главную диагональ в 1-ую строку. То что было левее - сразу после этого, то что было правее - еще ниже..
Если совсем заморочиться, то можно сначала доказать что именно такое расположение будет правильнным.
Poma][a вне форума Ответить с цитированием
Старый 25.09.2013, 19: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 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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