pascalabc.net
begin
var (n, k) : = readinteger2;
n : = ((n div 100 * 100) div k + 1) * k;
write(n)
end.
объяснение:
заменяем две последние цифры числа n нулями, для чего делим его на 100 нацело, а затем результат деления умножаем на 100. принимаем полученное число за n. делим это новое значение n нацело на k, затем частное увеличиваем на 1 и умножаем эту сумму на k, получая ответ.
пример.
n = 3571483, k = 97
n / 100 = 35714: 35714 × 100 = 3571400 - это новое значение n
n / k = 3571400 / 97 ≈ 36818 (остаток ненулевой); 36818 + 1 = 36819;
36819 × 97 = 3574143
Поделитесь своими знаниями, ответьте на вопрос:
Дано не менее трех различных натуральных чисел, за которыми следует 0. определить 3 наибольших числа среди них.
program msdos_2; uses crt; var a: array[1..3] of integer; //массив трёх максимальных элементов r,max,i,j: integer; begin writeln('*** alphaues is ***'); writeln('*** ok ***'); r: =1; writeln('введите ненулевое число'); writeln('(или введите 0 для конца последовательности) '); {вводим 3 первых элемента}
for i: =1 to 3 do begin write('ввод: '); readln (r); a[i]: =r; end; {сортируем массив из 3-х первых элементов} for i: =1 to 2 do begin max: =a[i]; for j: =i+1 to 3 do if a[j]> max then max: =a[j]; a[j]: =a[i]; a[i]: =max; end; {продолжаем ввод и сравниваем текущее число с массивом из 3-х первых} while r< > 0 do begin write('ввод: '); readln (r); if r> a[1] then begin a[3]: =a[2]; a[2]: =a[1]; a[1]: =r; end else if r> a[2] then begin a[3]: =a[2]; a[2]: =r; end else if r> a[3] then a[3]: =r; end; {выводим 3 максимальных элемента}
writeln(); writeln('три наибольших элемента массива: '); for i: =1 to 3 do writeln(i,'-й: ',a[i]); end.