1)У 60 человек есть кошка и собака.
у 20 - кошка и птичка
у 30 - собака и птичка
У 10 человек есть и кошка, и собака, и птичка. 1.1
Отсюда делаем вывод, что набор пар животных 60, 20 и 30 три раза посчитали тех у кого одновременно все эти трое видов животных есть.
теперь считаем:
у 60-10=50 есть только кошка и собака(без птички!) 1.2
у 20-10=10 есть только кошка и птичка(без собаки!) 1.3
у 30-10=20 есть только собака и птичка(без кошки!) 1.4
2)у 150 человек есть кошка
у 130 - собака
у 50 - птичка.
Это у кого возможно по два-три животных посчитаем, нужно их почистить:
2.1) уберем у кошколюбов тех у кого по 2-3 вида животных:
это 1.1, 1.2, 1.3 множества: 150-10-50-10=80 есть только кошки
2.2) уберем у собаководов, тех у кого по 2-3 вида животных:
это 1.1, 1.2, 1.4 множества: 130-10-50-20=50 есть только собаки.
2.3) уберем у птицефилов, тех у кого по 2-3 вида животных:
это 1.1, 1.3, 1.4 множества: 50-10-10-20=10 есть только птицы.
3) Теперь можем сложить чистую информацию:
чистые(не пересекающиеся с остальными) множества:
не забудем про 4.1) У 70 человек вообще нет домашнего животного
1.1, 1.2, 1.3, 1.4, 2.1, 2.2, 2.3, 3.1
10+50+10+20+80+50+10+70=300
#include <iostream>
#include <string>
using namespace std;
string dectobin(int num) // функция для перевода
{
string result; // строка для результата
for (; num!=0; num>>=1) // цикл со сдвигом вправо на 1 бит (работает быстрее чем деление на 2,
//но также делит)
result.insert(0, num&1 ? "1" : "0"); // вставка цифры в начало строки (1 если последний бит 1, 0 если 0)
return result; // возврат результата
}
int main(int argc, char *argv[])
{
// тут думаю понятно, ввод данных и вызов функции
int num;
cout<<"Enter number: ";
cin>>num;
cout<<dectobin(num);
return 0;
}
Поделитесь своими знаниями, ответьте на вопрос:
uses crt;
const nn=1000;
var
i,n,k:integer;
m:array[1..nn] of integer;
begin
k:=0;writeln('Введите размерность массива'); read(n); writeln;
writeln('Введите массив');
for i:=1 to n do begin
readln(m[i]);
if m[i]<0 then begin
m[i]:=m[i]*m[i]; k:=k+1; end;
end;
for i:=1 to n do write(m[i],' '); writeln;
write('Замена произошла ',k,' раз(а)');
end.