Ну давайте вместе решим. Что такое 8? Это 2 в 3 степени. Тогда что такое 8^4024? Это (2^3)^4024 или 2^12072
4^1605 аналогично 2^3210.
Ну и 2^1024
126 в бинарной системе это 0111 1110
Теперь попробуем это вместе сложить.
Если призадуматься, то 2^N это значит в бинарной записи на N-той позиции стоит единица.
Значит 2^12072 это 1 и 12071 нулей
Далее у нас отнимается 2^3210. В оригинальном числе на этом позиции 0, значит нам следует занять числа и в итоге получается что у нас с 12070 позиции по 3210 будет стоять единицы.
Далее добавляется одна единица на 1024ой позиции.
На данный момент у нас 8861 единиц.
Чтобы отнять 126 нам надо будет срезать одну единицу на 1024ой позиции чтобы занять в меньшие биты. Однако, с 1023 по 1 позицию у нас будут стоять единицы.
#include <iostream> #include <cstdlib> #include <ctime> int main() { using namespace std; cout << "Enter size of array: "; int N; cin >> N; int * ARR = new int[N]; srand(time(0)); int i; for (i = 0; i < N; ++i) ARR[i] = rand() % 100 + 1;
cout << "Here is an original array:\n"; for (i = 0; i < N; ++i) cout << ARR[i] << " "; cout << endl;
int temp = ARR[N - 1]; for (i = N - 1; i > 0; --i) ARR[i] = ARR[i - 1]; ARR[0] = temp;
cout << "\nHere is a new array:\n"; for (i = 0; i < N; ++i) cout << ARR[i] << " "; cout << endl;
9877
Объяснение:
Ну давайте вместе решим. Что такое 8? Это 2 в 3 степени. Тогда что такое 8^4024? Это (2^3)^4024 или 2^12072
4^1605 аналогично 2^3210.
Ну и 2^1024
126 в бинарной системе это 0111 1110
Теперь попробуем это вместе сложить.
Если призадуматься, то 2^N это значит в бинарной записи на N-той позиции стоит единица.
Значит 2^12072 это 1 и 12071 нулей
Далее у нас отнимается 2^3210. В оригинальном числе на этом позиции 0, значит нам следует занять числа и в итоге получается что у нас с 12070 позиции по 3210 будет стоять единицы.
Далее добавляется одна единица на 1024ой позиции.
На данный момент у нас 8861 единиц.
Чтобы отнять 126 нам надо будет срезать одну единицу на 1024ой позиции чтобы занять в меньшие биты. Однако, с 1023 по 1 позицию у нас будут стоять единицы.
8861 - 1 + 1023 = 9883
Однако 126 имел единицы в количестве 6 штук.
9883 - 6 = 9877
ответ 9877
#include <cstdlib>
#include <ctime>
int main()
{
using namespace std;
cout << "Enter size of array: ";
int N;
cin >> N;
int * ARR = new int[N];
srand(time(0));
int i;
for (i = 0; i < N; ++i)
ARR[i] = rand() % 100 + 1;
cout << "Here is an original array:\n";
for (i = 0; i < N; ++i)
cout << ARR[i] << " ";
cout << endl;
int temp = ARR[N - 1];
for (i = N - 1; i > 0; --i)
ARR[i] = ARR[i - 1];
ARR[0] = temp;
cout << "\nHere is a new array:\n";
for (i = 0; i < N; ++i)
cout << ARR[i] << " ";
cout << endl;
return 0;
}