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

"Магические" квадраты - C++

Восстановить пароль Регистрация
 
Sahon
10 / 10 / 1
Регистрация: 09.04.2010
Сообщений: 141
09.04.2011, 21:41     "Магические" квадраты #1
Задача Magic. Существует огромное количество разных видов "магических" квадратов. Одним из них является такой квадрат:

1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

Выберем любое число, например, 8. Вычеркнем числа, которые стоят в одном рядке и одном столбике с ним. Из чисел, которые остались, опять выберем произвольное число и повторим операцию вычеркивания. Будем делать так до тех пор, пока не останется не вычеркнутых чисел. Теперь, если сложить выбранные нами числа, то для этого квадрата эта сума будет постоянная (в нашем случае 34) и не будет зависеть от того, какие числа ты выбрали. Напишите программу, которая определит, является ли квадратная матрица NxN "магическим" квадратом", и если да, то найдет "магическую" сумму.

Технические условия. Программа читает с клавиатуры число N (2<=N<=1000), а дальше N рядков по N чисел через пропуск в каждом. Программа выводит на экран "магическую" сумму или 0, если квадрат не магический.

Пример
Ввод:
4
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
Вывод:
34
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2011, 21:41     "Магические" квадраты
Посмотрите здесь:

Замените в слове "му" на "а", а букву "ы" на "ца". C++
В одномерном массиве состоящим из "N" вещественных элементов вычислить сумму элемента массива с не четными "N" C++
C++ Заменитье буквы "a" и "o" в слове на "A" и "O".
C++ Замените буквы "а" и "о" в слове на "А" и "О".
При сокращении "Фамилия Имя Отчество" к "Фамилия И.О." пропадают "И.О." C++
C++ Ошибки в примере:"newline in constant"и"unexpected end of file while looking for precompiled header directive"
Наследование классов "Заявка", "Техническое задание", "Техническое предписание" C++
C++ Найти номер последней по порядку строки в матрице, содержащей наибольшее количество букв "ш", "щ"

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Хохол
Эксперт C++
 Аватар для Хохол
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
09.04.2011, 22:58     "Магические" квадраты #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
#include <fstream>
#include <vector>
 
using namespace std;
 
ifstream cin("input.txt");
ofstream cout("output.txt");
 
int n;
vector<vector<int> > a;
 
bool isMagic()
{
    for(int i = 0; i < n-1; i++)
        for(int j = 0; j < n-1; j++)
            if(a[i][j]+a[i+1][j+1] != a[i][j+1]+a[i+1][j])
                return false;
    return true;
}
 
int main()
{
    cin >> n;
    a.resize(n,vector<int>(n));
    for(int i = 0; i < n; i++)
        for(int j = 0; j < n; j++)
            cin >> a[i][j];
    if(isMagic())
    {
        int sum = 0;
        for(int i = 0; i < n; i++)
            sum += a[i][i];
        cout << sum;
    }
    else
        cout << 0;
}
Yandex
Объявления
09.04.2011, 22:58     "Магические" квадраты
Ответ Создать тему
Опции темы

Текущее время: 03:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru