Вот сортировка прямого выбора
Каждому разряду восьмеричной системы соответствуют ровно 3 разряда двоичной, например,
. Следовательно, четырехзначное восьмеричное число в двоичной системе будет лежать между числами
1 000 000 000 и 111 111 111 111 (включая). Теперь рассмотрим условие минимальности. Ясно, что первая группа двоичных разрядов должна быть одной единицей, т.к. в противном случае число не будет наименьшим. После этого должны следовать нули, т.к. из оставшихся кандидатов все числа, в которых на втором месте 0, меньше, чем те, у которых так 1. Аналогично, третье и четвертое место занимают 0. Значит, искомое число в двоичной системе выглядит так: 1 000 111 111. Соответственно, в восьмеричной системе это 1077, а в десятичной - 575.
#include "iostream"
#include "stdlib.h"
using namespace std;
int main(){
int N;//êîëè÷åñòâî ÷èñåë
int a;//î÷åðåäíîå ÷èñëî
int s;//ñóììà äâóõ ïîñëåäíèõ öèôð
int d[18];//ïîäñ÷åò ñóìì
int mx;//ìàêñèìàëüíî êîëè÷åñòâî ñóìì
int imx;//ñàìàÿ ÷àñòàÿ ñóììà
int i;
for (i = 0; i < 18; i++){
d[i] = 0;
}
cin >> N;
for(i = 1; i < N; i++){
cin >> a;
s = a % 10 + a / 10 % 10;
d[s] = d[s] + 1;
}
mx = 0;
for(i = 0; i < 18; i++){
if(d[i] >= mx){
mx = d[i];
imx = i;
}
}
cout << imx << endl;
system("pause");
return 0;
}