Ребятам поручили изготовить кубики. Несколько кубиков сделали из картона, а остальные из дерева. Кубики были двух размеров: большие и маленькие. Часть из них покрасили в зеленый цвет, другую – в красный. Получилось 16 зеленых кубиков. Зеленых кубиков большого размера было 6. Больших зеленых из картона было 4. Красных кубиков из картона было 8,красных кубиков из дерева – 9. Больших деревянных кубиков было 7, а маленьких деревянных кубиков было 11. Сколько же всего получилось кубиков
Если в 4-й и 5-й строках исходного кода на Python 1 отступ, а в 6-й - два отступа, то эквивалент на C++ может быть записан в следующем виде:
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
int main()
{
char c;
int n, k;
std::vector<int> left,right;
std::string line,nk;
std::vector<char> bahn;
std::getline(std::cin, line);
for (int i = 0; i < line.length(); i++)
if (line[i] != ' ') nk.push_back(line[i]);
else { n = atoi(nk.c_str()); nk = std::string(); }
k = atoi(nk.c_str());
for (int i=0;i<n;i++) bahn.push_back('I');
for (int i = 0; i < k; i++)
{
nk.clear();
std::getline(std::cin, line);
for (int i = 0; i < line.length(); i++)
if (line[i] != ' ') nk.push_back(line[i]);
else { left.push_back(atoi(nk.c_str())); nk = std::string(); }
right.push_back(atoi(nk.c_str()));
}
line = std::string(bahn.begin(), bahn.end());
for (int i = 0; i < k; i++)
for (int j = left.at(i) - 1; j < right.at(i); j++)
line[j] = '.';
std::cout << line;
return 0;
}
Объяснение:
1. Пронумеруем разряды:
3-й разряд - 4;
2-й разряд - 1;
1-й разряд - 5;
0-й разряд - 3.
4153₈=4·8³+1·8²+5·8¹+3·8⁰
2. 4153₈=4·8³+1·8²+5·8¹+3·8⁰=2048+16+40+3=2155₁₀
3. 125/8=15 (5)
15/8=1 (7)
(1)
125₁₀=175₈
4. Пронумеруем разряды:
2-й разряд - A;
1-й разряд - 6;
0-й разряд - E;
A6E₁₆=(10)(6)(14)=10·16²+6·16¹+14·16⁰
5. A6E₁₆=10·16²+6·16¹+14·16⁰=2560+96+14=2670₁₀
6. 350/16=21 (14=E)
21/16=1 (5)
(1)
350₁₀=15E₁₆
7. 247/2=123 (1)
123/2=61 (1)
61/2=30 (1)
30/2=15 (0)
15/2=7 (1)
7/2=3 (1)
3/2=1 (1)
(1)
247₁₀=11110111₂
247/8=30 (7)
30/8=3 (6)
(3)
247₁₀=367₈
247/16=7 (15=F)
(7)
247₁₀=7F₁₆
Получившиеся числа между собой равны, так как имеют одинаковое число в десятичной системе счисления.