var
x: real;
begin
readln(x);
if x < 2 then write(x * x + 4 * x + 5);
if x = 2 then write(1 / (x * x + 4 * x + 5));
if x > 2 then write(1);
end.
В 5 литровый набираешь воду и выливаешь в 9 литровый.
В 5 литровый снова набираешь воду и выливаешь в 9 литровый сколько влезет. 9 литровый получается полный, а в 5 литровом остается 1 литр.
Из 9 литрового выливаешь всю воду и выливаешь в него 1 литр из 5 литрового.
В 5 литровый набираешь воду и выливаешь в 9 литровый.
В 9 литровом получается 6 литров воды.
Как-то так
#include <iostream>
#include <set>
#include <iterator>
using namespace std;
int main()
{
string s;
cin >> s;
set<char> mySet;
set<char>::iterator it;
for(char i='0'; i<='9'; i++) mySet.insert(i);
for(int i=0; i<s.length(); i++) mySet.erase(s[i]);
cout << mySet.size() << endl;
for(it=mySet.begin(); it!=mySet.end(); ++it)
cout<<*it<<" ";
return 0;
}
Пример:
74959741926
<span>3
0 3 8</span>
Сложение в восьмеричной системе "в столбик" отличается от привычного нам десятичного лишь тем, что перенос в соседний разряд "единички" наступает не при превышении суммой числа 9, а при превышении числа 7, поскольку 8₁₀ = 10₈. Поэтому мы можем проводить сложение "как обычно", только при превышении 7 делать перенос ("один в уме") и увеличивать при этом сумму на 2 (перенос наступает на 2 единицы раньше).
Пример, 3₈+2₈=5₈ (7 не превышено, переноса нет), 6₈+7₈=13 (а тут превышено 7), добавляем к 3 еще двойку, получаем 15₈, пишем 5 и перенос +1
1153.2
+1147.32
-----------
2322.52
Тут 3+7=10, коррекция +2 до 12, 2 записали, +1 в следующий разряд.
5+4+1=10, снова коррекция до 12, 2 записали, +1 в следующий разряд.
1+1+1=3 - тут и далее без коррекции.
Ответ: 2322.52₈