#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int number, coun = 0, d, first, last;
double pwr;
setlocale(LC_ALL, "Russian");
cout << "Поменять первую и последнюю цифры числа>" << endl;
cout << "Введите число: ";
cin >> number;
d = number;
while (d > 0)
{
d /= 10;
coun++;
cout << "count = " << coun << endl;
}
pwr = pow(10, coun-1);
//к примеру число равно 321
//first = 3
//last = 1
//number = 32
//number = 323
//number = 23
//number = 123
first = number / (int)pwr;
last = number % 10;
number /= 10;
number = number * 10 + first;
number %= int(pwr);
number += last * int(pwr);
cout << "Result: " << number << endl;
return 0;
}
4
Объяснение:
Замечу, что команды цикла (кроме k++) попросту меняют местами значения элементов, рассматриваемых на текущей итерации.
k = 0
A = [3, -5, 1, -4, 11, 0, -14, 10, -8, 4]
i = 0
A[0]*A[1] = 3*(-5) = -15
-15 < 0 — true
k = 1, t = 3
A[0] = -5, A[1] = 3
A = [-5, 3, 1, -4, 11, 0, -14, 10, -8, 4]
i = 1
A[1]*A[2] = 3*1 = 2
3 < 0 — false
A = [-5, 3, 1, -4, 11, 0, -14, 10, -8, 4]
i = 2
A[2]*A[3] = 1*(-4) = -4
-4 < 0 — true
k = 2, t = 1
A[2] = -4, A[3] = 1
A = [-5, 3, -4, 1, 11, 0, -14, 10, -8, 4]
i = 3
A[3]*A[4] = 1*11 = 11
11 < 0 — false
A = [-5, 3, -4, 1, 11, 0, -14, 10, -8, 4]
i = 4
A[4]*A[5] = 11*0 = 0
0 < 0 — false
A = [-5, 3, -4, 1, 11, 0, -14, 10, -8, 4]
i = 5
A[5]*A[6] = 0*(-14) = 0
0 < 0 — false
A = [-5, 3, -4, 1, 11, 0, -14, 10, -8, 4]
i = 6
A[6]*A[7] = -14*10 = -140
-140 < 0 — true
k = 3, t = -14
A[2] = 10, A[3] = -14
A = [-5, 3, -4, 1, 11, 0, 10, -14, -8, 4]
i = 7
A[7]*A[8] = -14*(-8) = 112
112 < 0 — false
A = [-5, 3, -4, 1, 11, 0, 10, -14, -8, 4]
i = 8
A[8]*A[9] = -8*4 = -32
-32 < 0 — true
k = 4, t = -8
A[2] = 4, A[3] = -8