№1
#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;
}
1) 5 байт = 40 бит
2) 4096 байт = 4 КБ
3) 10 КБ = 81920 бит
4) 3 МБ = 3145728 байт
5) 2 байта = 16 бит
6) 8192 байт = 8 КБ
7) 2 КБ = 16384 бит
8) 100 МБ = 102400КБ
Формула указана не ясно в задании, я указал в ответе так как оно более менее смотрится понятно, но вам стоит уточнить. Что до алгоритма, то он выглядит вот таким вот образом. Внимание, первый член данного ряда считается за 0, вам стоит так же уточнить у преподавателя, в задании этого явно не указано, но зачастую такое значение традиционно.
Ошибки в вашем алгоритме:
1. У вас условие k < 0, это значит, что если будет введено k = 0, то алгоритм отработает, но 0 членов быть не может, это не имеет смысла.
2. Цикл у вас выводит значение n-го члена после каждой итерации, а не единожды.
Спасибо за отметку "Лучший ответ" и нажатую кнопочку "спасибо" (: