пишем в столбик - слева целая часть деления на 2 - справа остаток деления на 2
8 0
4 0
2 0
1 1
пишем в обратную сторону второй столбик 1000.
например с 13.
13 1
6 0
3 1
1 1
13 - 1101 в двоичной.
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
srand((int)time(0));
int M, N;
cout << "M="; cin >> M;
do
{
cout << "N="; cin >> N;
if (N%2!=0) cout << "N - even. Repeat please...\n";
}
while (N%2!=0);
double **a = new double*[M];
for (int i = 0; i < M; i++)
a[i]=new double[N];
for (int i = 0; i < M; i++)
{
for (int j = 0; j < N; j++)
{
a[i][j]=rand()%9 + 1;
cout << a[i][j] << " ";
}
cout << "\n";
}
cout << "\n";
for (int i = 0; i < M; i++)
for (int j = 0; j < N/2; j++)
swap (a[i][j],a[i][j+N/2]);
for (int i = 0; i < M; i++)
{
for (int j = 0; j < N; j++)
cout << a[i][j] << " ";
cout <<"\n";
}
for (int i = 0; i < M; i++)
delete[]a[i];
delete[]a;
system("pause");
return 0;
}
Объяснение:
Питон не учил (учил си шарп, плюс плюс, и паскаль), но принцип такой:
24/3=8 (нашли значение для цикла)
присваиваем переменной значение 0 (это делается до цикла) (далее эта переменная a), затем создаем цикл в котором и будит все программа (он повторяется 8 раз).
a+=3 или a=a+3, ну это как там у вас в питоне)
это действие повторяется каждый цикл (8 раз)
далее мы заранее созданной переменной ещё до цикла присваиваем значение 1.
Затем мы каждый цикл присваиваем этой переменной значение b=b*2
И потом выводим b на экран вместе с a и подписью "часа".
В паскале это выгядело бы так:
begin
a:=0;
b:=1;
for i:=1 to 8 do
begin
a:=a+3;
b:=b*2;
Writeln (b,"_за_",a,"_часа");
end;
end.
Поделитесь своими знаниями, ответьте на вопрос:
Как числа 8, 9, 10, 11, 12, 13, 14, 15 перевести в двоичную? подробно!