ОБСУЖДЕНИЕ

Chess.in

7 ответов 6 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Автор темы
Нужно найти максимальное количество слонов, которых можно разместить на шахматной доске размерности NXN так, что они не угрожали друг другу?
Формат входных данных:
Во входном файле chess.in содержится единственное целое число N(0<N<10^50) – размеры шахматной доски.
Формат выходных данных:
В исходный файл chess.out вывести одно число – максимальное количество слонов.
Chess.in:3
Chess.out:4
Хотя бы подскажыте мне идею задачи...
С НОВЫМ ГОДОМ!
 
Для: KoKoS
похоже, что по формуле 2(N-1), типа для 3x3:
xxx
000
0x0
для 4х4:
xxxx
0000
0000
0xx0
для 5х5:
xxxxx
00000
00000
00000
0xxx0
 
Для: Azrael
А реализовать можешь?
А то я пробую ничего не выходит....
 
Для: KoKoS
Создаешь новое приложение, удаляешь юнит, в коде самого проекта пишешь:
Код:
program chess;
uses SysUtils;
var inpF, outpF: TextFile;
stNum: String;
begin
if FileExists('chess.in') then
begin
try
AssignFile(inpF, 'chess.in');
AssignFile(outpF, 'chess.out');
Reset(inpF);
Rewrite(outpF);
Readln(inpF, stNum);
Writeln(outpF, IntToStr(2*(StrToInt(stNum)-1)));
finally
CloseFile(inpF);
CloseFile(outpF);
end;
end;
end.

сохраняешь как chess.dpr, в каталог складываешь chess.in, содержащий N.
Должно работать, я вот только не уверен насчет РЕАЛЬНО больших N... давненько в делфе не работал.
 
Для: Azrael
ОНА везде дает 1.
 
Для: KoKoS
не знаю, как Вы такого добились. В chess.out у меня нормально складывает чиселки...
А с большими числами, где кол-во разрядов больше 10, нужно, наверное, запрограммировать последовательность действий при вычитании -1 и умножения на 2 столбиком.

Попробую прикрепить проект, только на вири проверь :)
 

Вложения

Большое спосибо вам.
 
Для: KoKoS
Пожалуйста, можешь даже "+" тыкнуть ;)
А вообще код не совсем подходит под задачу: он не "схватит" N~10^50, т.е. 50-ти разрядное 10-тичное число... Тут, возможно, стОит написать функции умножения на 2 и вычитания 1-цы, которая будет принимать число в строковом формате, щоб работать с большими числами без потерь точности.
 

Ещё по теме