Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Урок 3, задача 8 (1481). Покупка
{ Урок 3, задача 8 (1481). Покупка Единица товара стоит a рублей b копеек. Было куплено n штук этого товара. Сколько рублей и копеек пришлось заплатить за всю покупку? Входные данные На вход программе подаются три целых числа: 0 ≤ a ≤ 30 000, 0 ≤ b < 100 и 0 ≤ n ≤ 30 000. Выходные данные Выведите два искомых числа. Примеры Входные данные: 10 15 2 Выходные данные: 20 30 Входные данные: 2 50 4 Выходные данные: 10 0 } var a, b, n: integer; // integer = longint: -2 147 483 648..2 147 483 647 (4 байта) // smallint: -32768..32767 2^16 (2 байта) begin readln(a, b, n); { Стоимость покупки в копейках = ( a * 100 + b ) * n. Если взять максимальные значения для a = 30000 b = 99 n = 30000 то ( 30000 * 100 + 99 ) * 30000 = 90 002 970 000 Это число больше, чем допустимый диапазон для типа integer (longint). Поэтому в лоб такую задачу решить не получится. Тип Размер, байт Диапазон значений shortint 1 -128..127 smallint 2 -32 768..32 767 integer 4 -2 147 483 648..2 147 483 647 longint 4 -2 147 483 648..2 147 483 647 int64 8 -9 223 372 036 854 775 808..9 223 372 036 854 775 807 byte 1 0..255 word 2 0..65 535 longword 4 0..4 294 967 295 cardinal 4 0..4 294 967 295 uint64 8 0..18 446 744 073 709 551 615 BigInteger переменный неограниченный } // решение в лоб - сначала рубли переводим в копейки: writeln( 'В лоб ', ( a * 100 + b ) * n div 100, ' ', ( a * 100 + b ) * n mod 100); // решение не в лоб: writeln( 'Не в лоб ', a * n + b * n div 100, ' ', b * n mod 100); // объяснение: a := a * n; // считаем рубли. Максимум 30000 * 30000 = 900 000 000 a := a + ( b * n ) div 100; // div выше и mod ниже нужны, так как если n >= 2, то количество копеек может // перевалить за 100. Например, 52 копейки и куплено 2 товара: итого 104 // копейки, которые необходимо перевести в 1 рубль и 4 копейки. b := ( b * n ) mod 100; writeln( 'То же ', a, ' ', b ); end.
run
|
edit
|
history
|
help
0
1
solar_system_yupiter
Vremenska prognoza
Bilangan fibonacci ke-1 sampai ke-n
Perimetro y Area (con validaciones)
12 13
Greetings
practica 9 ejercicio 8
Calculatrice 1.0
Huong11a2@