Складіть блок-схему фрагмента алгоритму, у якому цикл з лічильником вкладено в повне розгалуження і який виконується, якщо результат перевірки умови розгалуження Ні. Поясніть виконання складеного фрагмента.
Для того, чтобы перевести целое число из десятичной в двоичную систему счисления, необходимо разделить его на два, а затем делить на два каждое полученное частное до тех пор, пока не получится единица. Искомое двоичное число записывается как последовательность цифр, равных последнему частному (единице) и всем полученным остаткам, начиная с последнего.
Надо перевести сначала 21 в двоичную, потом 2 в двоичную и потом 2002 в двоичную
Получается вот так: 21 = 10101 2=10 2002 = 11111010010
Надо перевести сначала 21 в двоичную, потом 2 в двоичную и потом 2002 в двоичную
Получается вот так:
21 = 10101
2=10
2002 = 11111010010
В итоге:
10101.10.11111010010
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int x, y;
cin >> x >> y;
vector<vector<int> > t(x, vector<int> (y));
for (int i = 0; i < x; ++i){
for (int j = 0; j < y; ++j){
int mark;
cin >> mark;
t[i][j] = mark;
}
}
for (int i = 1; i < y; ++i){
t[0][i] += t[0][i - 1];
}
for (int i = 1; i < x; ++i){
t[i][0] += t[i - 1][0];
}
for (int i = 1; i < x; ++i){
for (int j = 1; j < y; ++j){
t[i][j] += min(t[i - 1][j], t[i][j - 1]);
}
}
cout << t[x - 1][y - 1] << endl;
}
Объяснение: