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

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

Войти
Регистрация
Восстановить пароль
 
Sahon
10 / 10 / 1
Регистрация: 09.04.2010
Сообщений: 141
#1

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

09.04.2011, 21:41. Просмотров 853. Ответов 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++ Преобразовать строку, заменяя каждое слово "this" словом "that".
"Теория вероятности Шейтона" и "Кодирование/дикодирование информации" (C++) C++
C++ После каждой буквы "о" в слове вставить сочетание "ля"
C++ error C2143: синтаксическая ошибка: отсутствие "]" перед ";"
C++ Преобразовать параметр из "WCHAR [260]" в "const char *"
"Нарушение прав доступа при чтении "0x00000000"" C++
Двумерный массив: Добавить методы "ДайЗначениеЯчейки", "УстановиЗначениеЯчейки" C++
C++ Классы "Бинарное дерево" и "Узел" в одном приложении
Массив "hotel", в который пользователь добавляет "жильцов" C++
Нужно найти слова которые встречаются в буквы "a" "z" C++
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     "Магические" квадраты
Ответ Создать тему
Опции темы

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