Складываем число людей, знающих английский, немецкий, французский: 6 + 6 + 7 = 19. Однако в это число дважды вошли люди, знающие (только) два языка и трижды - три языка. Вычитаем людей, знающих (хотя бы) два языка: 19 - (4 + 3 + 2) = 10. Т.к. в каждое из трех вычтенных множеств включено множество людей, получается, мы вычли его три раза, и 10 - количество людей, знающих меньше трех языков. Еще раз прибавляем людей, знающих три языка: 10 + 1 = 11 человек в комнате всего. В итоге получилось: 1 человек знает только английский 3 человека знают только французский 0 человек - только немецкий 3 - только английский и немецкий 2 - только немецкий и французский 1 - только английский и французский 1 - все три языка Задача очень легко решается, если изобразить ее на диаграмме, даже без всех этих рассуждений про множества
Как ч понял сортировка по неубыванию это сортировка по возрастанию. То есть легкие элементы всплывают наверх, а тяжелые перемещаются вниз:
//Pascal const m = 1000 var arr: array[1..m] of integer; n,i, j, k: integer; begin readln(n); write ('Исходный массив: '); for i := 1 to n do begin readln(arr[i]); end; //сортировка методом пузырька for i := 1 to n-1 do for j := 1 to n-i do if arr[j] > arr[j+1] then begin k := arr[j]; arr[j] := arr[j+1]; arr[j+1] := k end;
write ('Отсортированный массив: '); for i := 1 to n do write (arr[i]:4); end.
Алгоритм сортировки на классическом языке программирования С
# define SWAP(A,B) {A=A^B;B=A^B;A=A^B;} void bubblesort(int A[], int n) { int i, j; for(i = n-1 ; i > 0 ; i--) { for(j = 0 ; j < i ; j++) { if( A[j] > A[j+1] ) SWAP(A[j],A[j+1]); } } }