Модератор: Alla
"Зубрам коалиции сисадминов и программеров" предлагается решить несколько задачек по программированию. Задачи предоставлены Уральским государственным Университетом из сборников для олимпиады по программированию.
* Максимальное время работы получившейся программы (1 задания) - 3 секунды.
ЗАДАЧИ:
1. Петя Торопыжкин нашел в книжке по занимательной математике следующую задачу: "В выражении a ? b, где a и b - целые числа, по модулю не превосходящие 10 в степени 9, замените вопросительный знак одной из арифметических операций "+", "-", "*", "/" так, чтобы результат полученного выражения был максимально возможным. Как обычно, на ноль делить нельзя." Помогите Пете справиться с этой задачей - напишите соответствующую программу, которая получает на вход два целых числа и выдает символ операции, дающей максимальное значение выражения.
2. Пете Торопыжкину очень нравятся числа, нацело делящиеся на 6. Однажды на Новый Год младший брат Пети подарил ему длинное натуральное число, заданное в виде строки длиной не более 255 символов. Помогите Пете: постарайтесь переставить в этом числе цифры так, чтобы оно стало делиться на 6 и выведите результат (если число исходно делилось на 6, цифры можно не переставлять). Если требуемая перестановка невозможна, выведите -1.
3. Петя Торопыжкин нашел в кармане куртки старый трамвайный билет. Номера трамвайных билетов в городе, где живет Петя, состоят из 2N цифр (N - натуральное число, не превосходящее 100). К сожалению, в номере билета некоторые цифры затерлись и стали нечитаемыми. Помогите Пете: напишите программу, которая скажет, сколько существует счастливых билетов, из которых мог получиться билет, найденный Петей. (Напомним, что билет называется счастливым, если сумма его первых N цифр равна сумме последних N цифр.) На входе программа получает строку, состоящую из символов цифр и знаков вопроса на тех позициях, где цифры стали нечитаемы.
4. Прибираясь в спортзале после прошедшего математического биатлона, Петя Торопыжкин вымел кучу бумажек с написанными на них натуральными числами. Петя не поленился и выписал наибольший общий делитель для пар чисел с всевозможных пар бумажек. Найдите максимальный из этих наибольших общих делителей. Программа должна считывать данные из файла следующего формата. В первой строке записано натуральное число N - количество чисел в наборе ( 2 ? N ? 100000). Каждая из следующих N строк содержит по одному числу из этого набора; каждое число не превосходит 10^6. Программа должна выводить единственное натуральное число - максимальное значение НОД пар чисел из заданного набора.
Вот если-бы надо было программу написать за 3 секунды, это действительно было-бы соревнование программистовSolveig писал(а):Максимальное время работы получившейся программы (1 задания) - 3 секунды.
var sign:char;
var a,b:int64;
max:int64;
begin
readln(a,b);
max:=a+b; sign:='+';
if a*b>max then begin max:=a*b; sign:='*'; end;
if a-b>max then begin max:=a-b; sign:='-'; end;
if (b<>0)and(a div b>max) then begin max:=a div b; sign:='/'; end;
writeln (sign);
end.
Vladislav_133 писал(а):В первой задачке есть одна "фишка". А если ваше программа принципиально не может работать 64-битовыми числами? Тогда как?
function add(a,b:string):string;
function sub(a,b:string):string;
function divide(a,b:string):string;
function mul(a,b:string):string;
function compareBigNumbers(a,b:string):shortint;
Вернуться в Праздники и поздравления
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3