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

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

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

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

Ответ
 
Опции темы
Старый 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,651
По умолчанию

Есть нарабоки????
"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
Сообщений: 5,426
По умолчанию

Вот и всё решение (вроде) на 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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сделать коментарии и проверьте код к задаче ргр по теории информатики 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 10:32
помогите исправить код в задаче _grusha_ Помощь студентам 11 11.05.2009 22:05


00:11.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.