Сумма номеров страниц- это сумма арифметической прогрессии (с шагом= 1) от 1 до n (номер последней прочитанной страницы).
Такая сумма равна: n*(n+1) / 2 = Q
отсюда n*(n+1) = 2Q
Так как n -целое, то можно просто посчитать целую часть от квадратного корня из 2Q (также, я сделал проверку, правильную ли сумму ввели).
Сама программа:
алг
нач
цел Q, n
вывод "введите сумму номеров прочитанных страниц: "
ввод Q
n := int(sqrt(2*Q))
если n*(n+1) = 2*Q
то вывод "номер страницы = ", n
иначе вывод "неверная сумма номеров страниц"
все
кон
using namespace std;
int main(){int a, n, max, min;int max_i, max_k, min_i, min_k;//ввод размера массиваcin>>a;cin>>n;
//объявление массиваint** a = new int* [a]; for(int i = 0; i < n; i++) { a[i] = new int [a]; }
//ввод первого массива for(int i = 0; i < a; i++) { for(int k = 0; k < n; k++) { cin>>a[i][k]; } } //Инициализация max, min; max=a[0][0]; min=a[0][0]; //поиск максимума for(int i = 0; i < a; i++) { for(int k = 0; k < n; k++) { if(max<a[i][k]) { max=a[i][k]; max_i=i; max_k=k; } } } //поиск минимума for(int i = 0; i < a; i++) { for(int k = 0; k < n; k++) { if(min>a[i][k]) { min=a[i][k]; min_i=i; min_k=k; } } }
//Max and Min меняются местамиswap(a[max_i][max_k],a[min_i][min_k]);getch();return 0;}