#include <iostream>
#include <time.h>
using namespace std;
int main()
{
srand(time(0));
int a, b;
int min = 100, posI, posJ;
cin >> a >> b;
int** matrix = new int*[a];
for (int i = 0; i < a; i++)
matrix[i] = new int[b];
for (int i = 0; i < a; i++)
{
for (int j = 0; j < b; j++)
matrix[i][j] = rand() % min;
}
for (int i = 0; i < a; i++)
{
for (int j = 0; j < b; j++)
cout << matrix[i][j] << '\t';
cout << endl;
}
for (int i = 0; i < a; i++)
{
for (int j = 0; j < b; j++)
if (matrix[i][j] < min)
{
posI = i;
posJ = j;
min = matrix[i][j];
}
}
matrix[posI][posJ] = matrix[0][0];
matrix[0][0] = min;
cout << endl;
for (int i = 0; i < a; i++)
{
for (int j = 0; j < b; j++)
cout << matrix[i][j] << '\t';
cout << endl;
}
for (int i = 0; i < a; i++)
delete[] matrix[i];
delete[] matrix;
system("pause");
return 0;
}
10111₂ + 18₁₀ = 56ₓ
Для начала переведём всё в десятичную систему счисления:
1⁴0³1²1¹1⁰₂= 1 · 2⁴ + 0 + 1 · 2² + 1 · 2¹ + 1 · 2⁰ = 16 + 4 + 2 + 1 = 23₁₀
Запишем уравнение в новом виде:
23₁₀ + 18₁₀ = 56ₓ
41₁₀ = 56ₓ
Представим 56 в системе счисления x в развёрнутом виде:
5¹6⁰ₓ = 5 · x¹ + 6 · x⁰ = 5x + 6
Запишем уравнение в новом виде:
41₁₀ = 5x + 6
Перенесём иксы влево, а числа вправо:
-5x = 6 - 41
-5x = -35
x = 7 - система счисления
Проверка56₇ переведём в 10-ю систему счисления:
5¹6⁰₇ = 5 · 7¹ + 6 · 7⁰ = 35 + 6 = 41₁₀
23₁₀ + 18₁₀ = 41₁₀
41₁₀ = 41₁₀
ответ7
Поделитесь своими знаниями, ответьте на вопрос:
Дано целое трехзначное число x составьте программу вычисления суммы и произведения цифр трехзначного числа x значения x ввести с клавиатуры
//Версия 3.3, сборка 1627
begin
var a:=abs(ReadInteger).Tostring.Select(x->x.ToDigit);
writeln('сумма цифр: ',a.Sum);
write('произведение цифр: ',a.Aggregate(Real(1),(x,y)->x*y));
end.