Дано уравнение ax^2+ bx + c (a не равно 0). Выяснить, имеет ли квадратное уравнение действительные корни. Если действительные корни имеются, то найти их. В противном случае ответом должно служить сообщение, что действительных корней нет.
Посчитаем количество раз, когда встречается каждая цифра в исходном числе. Тогда ответ – либо все цифры, расположенные в порядке возрастания (если в исходном числе не было нулей), либо сначала одна наименьшая цифра, потом все нули, потом все остальные цифры в порядке возрастания.
Перевод из одной системы счисления происходит путем деления исходного числа на основание нужной системы до тех пор, пока частное не будет меньше делителя. Затем, остатки от деления записываются в обратном порядке, т.е. если у нас были остатки 1 7 5, то число у нас получится 571. Например, переведем число 500 из 10-ой системы счисления в 16-ую. Не забудем, что цифры, начиная от 10, заканчивая 15 в 16-ой системе счисления обозначаются первыми 6 буквами английского алфавита: A B C D E F. На рисунке показано решение примера.
Посчитаем количество раз, когда встречается каждая цифра в исходном числе. Тогда ответ – либо все цифры, расположенные в порядке возрастания (если в исходном числе не было нулей), либо сначала одна наименьшая цифра, потом все нули, потом все остальные цифры в порядке возрастания.
С++:
#include <iostream>
int main() {
int count[10];
char digit;
for (digit = 0; digit < 10; digit++) {
count[digit] = 0;
}
while (std::cin.get(digit)) {
digit -= '0';
if ((digit < 0) || (digit > 9)) {
break;
}
count[digit]++;
}
digit = 1;
while (count[digit] == 0) {
digit++;
}
std::cout << int(digit);
count[digit]--;
for (digit = 0; digit < 10; digit++) {
for (int i = 0; i < count[digit]; i++) {
std::cout << int(digit);
}
}
return 0;
}
Пример ввода: 11111111112345678098765422
Пример вывода: 10111111111222344556677889