Ниже записана программа. Получив на вход число x , эта программа печатает два числа, L и M . Укажите наименьшее из таких чисел x , при вводе которых алгоритм печатает сначала 3, а
потом 8.
x = int(input())
L = 0; M = 0
while x > 0:
L = L + 1
if x % 2 == 0:
M = M + (x % 10)
x = x // 10
print("%d\n%d" % (L, M))
Можно воспользоваться функций Power для возведения в степень 1/3, либо применить известную формулу
Но в обоих случаях используется (явно или скрыто) вычисление логарифма. А мы помним, что логарифм определен только для положительного аргумента.
По заданию нужно найти кубический корень из a+b. И этот корень определен для любого вещественного числа, в отличии от логарифма.
Вспоминаем:
И только теперь можно писать программу.
// PascalABC.NET 3.2, сборка 1353 от 27.11.2016
// Внимание! Если программа не работает, обновите версию!
begin
var a,b,c:real; Read(a,b);
c:=a+b;
Writeln(sign(c)*power(abs(c),1/3))
end.
Примеры
14.283 -32.17
-2.61524573390822
13.183 -13.183
0
// Внимание! В более ранних версиях работа не гарантируется!
begin
var m:=ReadInteger('Количество строк в массиве:');
var n:=ReadInteger('Количество столбцов в массиве:');
Writeln('Вводите элементы массива');
var a:=new integer[m,n];
for var i:=0 to m-1 do
for var j:=0 to n-1 do Read(a[i,j]);
Writeln('-'*20);
foreach var c in a.Cols do Write(c.Sum,' ')
end.
Пример
Количество строк в массиве: 4
Количество столбцов в массиве: 3
Вводите элементы массива
1 6 -2
0 6 8
-3 6 1
4 6 -3
2 24 4