Меню сайта

Категории раздела
Готовимся к олимпиаде по программированию (задачи взяты с сайта http://olimpiada.com.ru) [36]
Решение олимпиадных задач по программированию
Готовимся к олимпиаде по математике [3]
Решение олимпиадных задач по математике

Мини-чат

Наш опрос
Оцените мой сайт
Всего ответов: 2678

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0


Главная

Регистрация

Вход
Вы вошли как Гость | Группа "Гости" | RSS


Личный сайт учителя математики и информатики

Фоновой Натальи Леонидовны



Четверг, 25.04.2024, 10:12
Главная » Файлы » Внеурочная деятельность » Готовимся к олимпиаде по программированию (задачи взяты с сайта http://olimpiada.com.ru)

Магические квадраты
13.02.2012, 08:55
Магические квадраты

Условие:
Магическим называется квадрат, в котором сумма чисел по всем горизонталям, вертикалям и диагоналям совпадает. Найти все магические квадраты 3х3 составленые из девяти цифр (1..9).

Пример:
2 7 6
9 5 1
4 3 8

Технические условия:
Стандартные.

Примеры входных и выходных файлов:
Input.txt
20 3 4
Output.txt
6

Input.txt
12 2 2
Output.txt
6

Input.txt
25 5 5
Output.txt
5

Input.txt
100 2 1
Output.txt
67

Решение:
label
l1,l2,l3,l4,l5,l6,l7,l8;
var
a1,a2,a3,a4,a5,a6,a7,a8,a9,x,n:integer;
begin
writeln('Поиск магических квадратов 3*3...');
for a1:=1 to 9 do begin
for a2:=1 to 9 do begin
for a3:=1 to 9 do begin
for a4:=1 to 9 do begin
for a5:=1 to 9 do begin
for a6:=1 to 9 do begin
for a7:=1 to 9 do begin
for a8:=1 to 9 do begin
for a9:=1 to 9 do begin
if (a9=a8) or (a9=a7) or (a9=a6) or (a9=a5) or (a9=a4) or (a9=a3) or (a9=a2) or (a9=a1) then goto l1;
if (a8=a7) or (a8=a6) or (a8=a5) or (a8=a4) or (a8=a3) or (a8=a2) or (a8=a1) then goto l2;
if (a7=a6) or (a7=a5) or (a7=a4) or (a7=a3) or (a7=a2) or (a7=a1) then goto l3;
if (a6=a5) or (a6=a4) or (a6=a3) or (a6=a2) or (a6=a1) then goto l4;
if (a5=a4) or (a5=a3) or (a5=a2) or (a5=a1) then goto l5;
if (a4=a3) or (a4=a2) or (a4=a1) then goto l6;
if (a3=a2) or (a3=a1) then goto l7;
if (a2=a1) then goto l8;
x:=a1+a2+a3;
if (a4+a5+a6=x) and (a7+a8+a9=x) and (a1+a4+a7=x) and (a2+a5+a8=x) and (a3+a6+a9=x)
and (a1+a5+a9=x) and (a3+a5+a7=x)
then begin
n:=n+1;
writeln('Квадрат ',n);
writeln(a1,' ',a2,' ',a3);
writeln(a4,' ',a5,' ',a6);
writeln(a7,' ',a8,' ',a9);
readln;
end;
l1:end;
l2:end;
l3:end;
l4:end;
l5:end;
l6:end;
l7:end;
l8:end;
end;
end.
Категория: Готовимся к олимпиаде по программированию (задачи взяты с сайта http://olimpiada.com.ru) | Добавил: admin
Просмотров: 1117 | Загрузок: 0 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Поиск

Кнопка сайта

Одна кнопка

время жизни сайта

Сайт участвует
конкурс сайтов 

Новости образовани

Фраза дня

Web-мастеру

OperaFirefoxGoogle ChromeDownload Master
QIPSkypeµTorrentTeamViewer
Dr.Web CureITAvira AntiVirTotal CommanderCDBurnerXP
PicasaIrfanViewCheMaxDAEMON Tools
AIMPKMPlayerBSplayerK-Lite Codec Pack

Установить себе такой Блок
Скрипты и HTML для uCOz

Раскрутка сайта
Graffiti Decorations(R) Studio (TM) Site Promoter

Copyright MyCorp © 2024
/td>