Страница 1 из 1

Прошу помощи камрадов. Споткнулся на примитиве...

СообщениеДобавлено: 23.11.2021 20:11:40
Deimos
Всем Бобра...

Вводная: Ребенок учится в седьмом классе и начали изучать Pascal (fpc, что приятно порадовало).

Есть сайт с заданиями, на котором и проверяется работа, которая выполнена. Проверяется путем машинного тестирования.

Сабж:

Ввод
Три натуральных числа a, b, n (0 ≤ a, b, n ≤ 100). (руб, коп, шт)

Вывод
Через пробел два числа: стоимость покупки "руб" "коп"

Входные данные #1 content_copy
1 25 2

Выходные данные #1 content_copy
2 50

Предложенное решение:
Код: Выделить всё
var a,b,n:integer;
begin
    readln(a,b,n);
    a:=(a*100+b)*n;
    write(a div 100,' ',a mod 100);
end.


На мой взгляд - все верно. но проходит 8 из 10 тестов. в каких ошибка и какая - данных нет...

Ошибка в тестах или я (по "горе от ума") не углядел чего простого?

Буду благодарен за мысли...

Re: Прошу помощи камрадов. Споткнулся на примитиве...

СообщениеДобавлено: 23.11.2021 21:28:28
iskander
Емнип, режим совместимости по умолчанию - {$mode fpc}, а в нём Integer = SmallInt.
Может проблема в переполнении?

Re: Прошу помощи камрадов. Споткнулся на примитиве...

СообщениеДобавлено: 23.11.2021 21:42:01
Deimos
iskander писал(а):Емнип, режим совместимости по умолчанию - {$mode fpc}, а в нём Integer = SmallInt.
Может проблема в переполнении?


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

Re: Прошу помощи камрадов. Споткнулся на примитиве...

СообщениеДобавлено: 23.11.2021 22:20:26
runewalsh
Как же неоткуда, в a может понадобиться сохранить значение в 100 рублей × 100 копеек/рубль × 100 штук = 1 000 000 копеек.
Есть встроенные типы фиксированного размера int32 (±2 млрд), uint32 (0..4 млрд), int64 (±9×10¹⁸), uint64 (0..1,8×10¹⁹). Integer становится 32-битным при включении режима {$mode objfpc}.

Ещё можно умножить в два шага с переносом:
Код: Выделить всё
b := b * n;
a := a * n + b div 100;
b := b mod 100;
writeln(a, ' ', b);

Но семиклассник может и не просечь фишку (хотя, наверное, я слишком плохого мнения о семиклассниках...).

Re: Прошу помощи камрадов. Споткнулся на примитиве...

СообщениеДобавлено: 23.11.2021 22:39:30
Deimos
runewalsh писал(а):хотя, наверное, я слишком плохого мнения о семиклассниках...


Слив засчитан... так меня давно не мокали "мордомвгрязь" )))

Благодарю

Мое упущение. Но семикласник, после двух лекций, действительно не может этого знать...

P.s. Семикласник нет, а мне следовало-бы... :twisted: