ПогальниковАлёна589
?>

Нужна )) если не сложно с коментариями описать функцию transform(n), которая "припишет" к числу n по единичке в начале и в конце. обратиться к функции со значениями 23, 234, 2345.

Информатика

Ответы

Kochereva-Sergei
// PascalABC.NET 3.2, сборка 1463 от 01.06.2017
// Внимание! Если программа не работает, обновите версию!

function Transform(n:integer):=('1'+n+'1').ToInteger;

begin
  Println(Transform(23),Transform(234),Transform(2345));
end.

Результат
1231 12341 123451
milkline-nn
Function Transform(n:longint):longint;
Var
   k,B:longint;
Begin
B:=n;
k:=1;
While B <> 0 do
   Begin
   k:=k*10;
   WriteLn('k = ',k);
   B:=B div 10;
   End;
if n >= 0 then
   Begin
   WriteLn('n:= k + n = ',k,' + ',n,' = ',n+k);
   WriteLn('n:= 10*n + 1 = ',10*(k+n),' + ',1,' = ',(k+n)*10+1);
   Transform:=(k+n)*10+1
   End;
End;
Var
   A:longint;
Begin
Write('Введите целое число: ');ReadLn(A);
WriteLn(Transform(A))
End.
navi35374
Сначала найдем получить из 21 30, групируя комманды от большей к меньшей
21 + 2*4 + 0*2 + 1*1 = 30 - перестановок команд = (2+0+1)!/2!/0!/1! = 3
21 + 1*4 + 2*2 + 1*1 = 30 - перестановок команд = (1+2+1)!/1!/2!/1! = 12
21 + 1*4 + 1*2 + 3*1 = 30 - перестановок команд = (1+1+3)!/1!/1!/3! = 20
21 + 1*4 + 0*2 + 5*1 = 30 - перестановок команд = (1+0+5)!/1!/0!/5! = 6
21 + 0*4 + 4*2 + 1*1 = 30 - перестановок команд = (0+4+1)!/0!/4!/1! = 5
21 + 0*4 + 3*2 + 3*1 = 30 - перестановок команд = (0+3+3)!/0!/3!/3! = 20
21 + 0*4 + 2*2 + 5*1 = 30 - перестановок команд = (0+2+5)!/0!/2!/5! = 21
21 + 0*4 + 1*2 + 7*1 = 30 - перестановок команд = (0+1+7)!/0!/1!/7! = 8
21 + 0*4 + 0*2 + 9*1 = 30 - перестановок команд = (0+0+9)!/0!/0!/9! = 1
Всего 3+12+20+6+5+20+21+8+1 = 96
TatyanaVladimirovich
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(ReadInteger('n='),-99,99); a.Println;
  var se:=a.Where((x,i)->i.IsOdd).Sum;
  var pn:=a.Where(x->x<0).Aggregate(BigInteger(1),(p,q)->p*q);
  var ko:=a.Where(x->x.IsOdd).Count;
  Writeln('Сумма элементов с четными номерами: ',se);
  Writeln('Произведение отрицательных элементов: ',pn);
  Writeln('Количество нечетных элементов: ',ko)
end.

Пример
n= 17
7 -60 -7 -96 -14 97 7 -68 -89 -87 -50 49 77 -52 -36 -15 99
Сумма элементов с четными номерами: -232
Произведение отрицательных элементов: -417286023598080000
Количество нечетных элементов: 10

begin
  var a:=ReadArrInteger('Вводите:',ReadInteger('n='));
  a.Println;
  a.Transform(x->x<0?abs(x):x>0?x*x:x); a.Println
end.

Пример
n= 17
Вводите: 7 -60 -7 -96 -14 97 7 -68 -89 -87 -50 49 77 -52 -36 -15 99
7 -60 -7 -96 -14 97 7 -68 -89 -87 -50 49 77 -52 -36 -15 99
49 60 7 96 14 9409 49 68 89 87 50 2401 5929 52 36 15 9801

begin
  var a:=ArrRandom(ReadInteger('n='),-99,99); a.Println;
  var im:=a.IndexMax;
  swap(a[0],a[im]); a.Println;
end.

Пример
n= 16
-73 -46 76 92 -57 -57 81 -96 -92 18 -76 89 13 -83 69 56
92 -46 76 -73 -57 -57 81 -96 -92 18 -76 89 13 -83 69 56

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Нужна )) если не сложно с коментариями описать функцию transform(n), которая "припишет" к числу n по единичке в начале и в конце. обратиться к функции со значениями 23, 234, 2345.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

info46
bistrayakuhnya46
info4632
matoksana
vikabobkova2010
mashere59
tarja4140
magazin7452834
Klyucharyova
dailyan539
DVOct33
yuda12
Анна1169
officem695
Vip2002www86