Как да се определи дали матрицата - вълшебната площада
На въпрос на университета, за да напише програма на C ++, която определя дали въвеждането на матрицата на магия площада. Това е задачата:
Декларирам масив от данни вътр размер 3 тип 3. Въведете утеши своята стойност. Проверете дали матрицата "магически квадрат" (в "магически квадрат" сума от елементите във вертикално, хоризонтално и диагонал равен).
Вие можете да помогнете с решението. Благодаря.
Осъществяване вашата работа много. Можете да намерите сумата от елементи във всеки ред, колона и диагонал kakzhdogo (основна и странична) и да се сравни всяка сума. Но това е една продълговата метод. По-лесна за решаване, както следва.
1. Изчислете така наречените "магически числа". Тя се изчислява по формулата: п * (п ^ 2 + 1) / 2, където п - е измерение на квадратна матрица.
2. Fold всички елементи на квадратна матрица и се разделя на п т.е. размерност
3. Сравнете резултата с "магически числа".
В C ++ в изпълнението на конзолата молба ще бъде, както следва:
#include "stdafx.h"
#include
#include
#include
използване на пространството от имена STD;
конст Int п = 3; // измерение на квадратна матрица
setlocale (LC_ALL, "Руски"); // включва поддръжка на български език
за (INT I = 0; и
Int М = (п * (п * п + 1)) / 2; // магически постоянна
// ако разделим цялата сума на елементите в измерението на площада получаваме числото е сумата от диагоналите сума / п
// ако получената броя на разделянето ще бъде константа, това означава, че матрицата на магически
ако (М == (сума / п)) ФОРМАТ ( "магически матрица \ п");
>
още<
ФОРМАТ ( "Матрицата не е магия \ н!");
>
STD :: Cout <<"Магическая константа М " <
връщане 0;
>
Това е всичко, разтвор.