#include <iostream>
using namespace std;
int main()
{
int *arr; // указатель для выделения памяти под массив
int size; // размер массива
// Ввод количества элементов массива
cout << "n = ";
cin >> size;
if (size <= 0) {
// Размер масива должен быть положитлеьным
cerr << "Invalid size" << endl;
return 1;
}
arr = new int[size]; // выделение памяти под массив
// заполнение массива
for (int i = 0; i < size; i++) {
cout << "arr[" << i << "] = ";
cin >> arr[i];
}
int temp; // временная переменная для обмена элементов местами
// Сортировка массива пузырьком
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// меняем элементы местами
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
// Вывод отсортированного массива на экран
for (int i = 0; i < size; i++) {
cout << arr[i] << " ";
}
cout << endl;
delete [] arr; // освобождение памяти;
return 0;
}
Поделитесь своими знаниями, ответьте на вопрос:
Кто-нибудь скажите как это делать, ?
1024 - это степень двойки, следовательно, может записываться в виде:
2ⁿ = 1024, где n = 10
Данную десятичную запись мы можем представить как 1000..., где количество нулей равно n. Таким образом:
1024₁₀ = 2¹⁰ = 10 000 000 000₂
Обратный перевод требует нумерации двоичного числа справа налево, начиная с 0. Таким образом, степени всех нулей будут от 0 до 9, а единице достанется степень 10. Записывается перевод в такой форме (степень у числа - это нумерация):
1¹⁰0⁹0⁸0⁷0⁶0⁵0⁴0³0²0¹0⁰₂ = 1 · 2¹⁰ + 0 · 2⁹ + ... + 0 · 0⁰ = 2¹⁰ = 1024₁₀