PascalABC.NET 3.4
begin
var n := ReadInteger('n=');
var a := ArrRandom(n, 0, 2); a.Println;
var (k, km) := (0, 0);
for var i := 0 to n-1 do
if a[i] = 0 then
if k = 0 then k := 1
else k += 1
else
begin
if k > km then km := k;
k := 0
end;
Writeln('Максимальное количество нулей подряд равно ',km)
end.
#include <iostream>
#include <string>
using namespace std;
#define IN 1 //внутри слова
#define OUT 0 //вне слова
int main()
{
string s;
getline(cin, s);
int state = OUT; //позиция
s = ' ' + s + ' ';
int k = 0; //позиция начала слова
for (int i = 0; i < s.size(); i++)
if (s[i] == ' ') {
if (state == IN && s[k] == s[i - 1])
cout << s.substr(k, i - k + 1) << endl;
state = OUT;
} else if (state == OUT) {
k = i;
state = IN;
}
return 0;
}
<span>
1. 56</span>₁₀-> X₂
<span><span>56/2=28 остаток 0
</span><span>
28/2=14 остаток 0
</span>
<span>
14/2=7 остаток 0
</span>
<span>
7/2=3 остаток 1
</span>
<span>
3/2=1 остаток 1
</span>
1/2=0 остаток 1
</span>56₁₀ = 111000₂
2.
176₁₀-> X₂<span>
<span><span>176/2=88 остаток 0
</span><span>
88/2=44 остаток 0
</span>
<span>
44/2=22 остаток 0
</span>
<span>
22/2=11 остаток 0
</span>
<span>
11/2=5 остаток 1
</span>
<span>
5/2=2 остаток 1
</span>
<span>
2/2=1 остаток 0
</span>
<span>
1/2=0 остаток 1
</span>
</span></span>176₁₀ = 10110000₂
<span>3.
</span>10001₂->X₁₀
2^4+2^0=17
10001₂ = 17₁₀
4.
101011₂->X₁₀
2^5+2^3+2^1+2^0=43
10001₂ = 43₁₀
Примерно так рисуются круги Эйлера
Результат отработки алгоритма:
A=2
B=2
C=9
D=3