Здравствуйте ! Вы не указали, каким образом должен заполняться массив (рандомом или с клавиатуры), поэтому я решила заполнить его рандомными числами. При необходимости можете изменить интервал.
#include <iostream>
#include <clocale>
using namespace std;
int main()
{
int sum = 0;
const int rows = 8;
const int cols = 8;
int arr[rows][cols];
setlocale(LC_ALL, "Russian");
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
arr[i][j] = rand() % 10;
cout << arr[i][j] << " ";
}
cout << endl;
}
cout << endl << endl;
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
sum = arr[i][j] + sum;
}
cout << "Сумма элементов массива: " << sum << endl;
cout << endl;
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
if (j == 0)
arr[i][j] = arr[i][j] / sum;
cout << " " << arr[i][j];
}
cout << endl;
}
return 0;
}
Объяснение:
elena-ruzadom
08.07.2021
Учитывая, что 8 букв можно переставить примерно 40 тысячами можно просто запустить поиск в ширину, сохранить для всех перестановок то, из какой строчки они получились, и потом восстановить ответ для строчки abcdefgh.
while not to_process.empty(): s, prev = to_process.get() if s in prec: continue for i in range(7): for j in range(i + 1, 8): if i == 0: next_s = s[j::-1] + s[j+1:] else: next_s = s[:i] + s[j:i-1:-1] + s[j+1:] if next_s not in prec: to_process.put((next_s, s)) prec[s] = prev
current = "abcdefgh" print(current) while prec[current] is not None: current = prec[current] print(current)
Учитывая, что 8 букв можно переставить примерно 40 тысячами можно просто запустить поиск в ширину, сохранить для всех перестановок то, из какой строчки они получились, и потом восстановить ответ для строчки abcdefgh.
while not to_process.empty(): s, prev = to_process.get() if s in prec: continue for i in range(7): for j in range(i + 1, 8): if i == 0: next_s = s[j::-1] + s[j+1:] else: next_s = s[:i] + s[j:i-1:-1] + s[j+1:] if next_s not in prec: to_process.put((next_s, s)) prec[s] = prev
current = "abcdefgh" print(current) while prec[current] is not None: current = prec[current] print(current)
Здравствуйте ! Вы не указали, каким образом должен заполняться массив (рандомом или с клавиатуры), поэтому я решила заполнить его рандомными числами. При необходимости можете изменить интервал.
#include <iostream>
#include <clocale>
using namespace std;
int main()
{
int sum = 0;
const int rows = 8;
const int cols = 8;
int arr[rows][cols];
setlocale(LC_ALL, "Russian");
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
arr[i][j] = rand() % 10;
cout << arr[i][j] << " ";
}
cout << endl;
}
cout << endl << endl;
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
sum = arr[i][j] + sum;
}
cout << "Сумма элементов массива: " << sum << endl;
cout << endl;
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
if (j == 0)
arr[i][j] = arr[i][j] / sum;
cout << " " << arr[i][j];
}
cout << endl;
}
return 0;
}
Объяснение: