димон333777
04.05.2020 03:30

Язык программирования - python
Когда Учитель достиг он понял, что должен раздать свои богатства, причём сделать это следующим образом: в первый день разделить все свои золотые монеты на 8 равных частей (счастливое число!), излишки (если таковые будут иметься) пожертвовать храму Будды, оставить себе одну восьмую часть, остальные раздать бедным.

Во второй день вновь разделить оставшиеся монеты на 8 частей и повторить вышеуказанные манипуляции. И продолжать так до тех пор, пока у него не останется так мало монет, что при делении их на 8 равных частей они все окажутся излишком.

Оставшиеся монеты можно оставить себе. Кроме того, Учитель не тратит свои деньги (во всяком случае, в дни после его кормят ученики, а в быту он аскетичен.

Хотя Учитель знает, конечно, сколько у него золотых монет изначально, но он не может сообразить, сколько монет окажется в конце — всё-таки он Учитель духовных практик, а не математики или программирования ему.

Иными словами, найдите первую цифру введённого числа при записи его в системе счисления с основанием 8.

Формат ввода

Одно целое число — изначальное количество монет у Учителя.

Формат вывода

Одно целое число — количество монет, которое останется у Учителя в конце.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
mashacat5571
06.02.2020 23:17

1.В содержательном подходе количество информации, заключённое в сообщении, определяется объёмом знаний, который это сообщение несёт получающему его человеку. Один бит - это минимальная единица измерения количества информации. Сообщение, уменьшающее неопределённость знания в два раза, несёт один бит информации.

2.Вероятностный подход предполагает, что возможные события имеют различные вероятности реализации. ... Качественная связь между вероятностью события и количеством информации в сообщении состоит в следующем: чем меньше вероятность некоторого события, тем больше информации содержит сообщение об этом событии.

3.Эта единица называется бит. Сообщение, уменьшающее неопределенность знаний в два раза, несет 1 бит информации. Неопределенность знаний о некотором событии – это количество возможных результатов события.

4.Формула Хартли или хартлиевское количество информации или мера Хартли - логарифмическая мера информации, которая определяет количество информации, содержащееся в сообщении. ... Формула была предложена Ральфом Хартли в 1928 году как один из научных подходов к оценке сообщений.

5.Случа́йное собы́тие — подмножество множества исходов случайного эксперимента; при многократном повторении случайного эксперимента частота наступления события служит оценкой его вероятности.

0,0(0 оценок)
Ответ:
SoFiA5454555
06.02.2020 10:49
1.1. Количество нечетных чисел в заданном промежутке можно легко найти, зная что нечетные числа следуют через одно, чередуясь с четными. Конечно, можно написать в программе цикл и перебрать все нечетные элементы, каждый раз добавляя по +1 в счетчик количества, но гораздо проще воспользоваться знаниями из математики. Легко видеть, что нечетные числа образуют арифметическую прогрессию с разностью d=-2, начальный член a1=7, а конечный член an=-3.
Вспомним формулу для n-го члена арифметической прогрессии и получим из нее n.
\displaystyle a_n=a_1+d(n-1) \to n= \frac{a_n-a_1}{d}+1
В соответствии с условиями нашей задачи это будет верно, если a1 и an - нечетные. Если a1 четное, то его надо уменьшить на 1. Аналогично, если an четное, его надо увеличить на 1. Таким образом, мы получаем алгоритм, пригодный для быстрого определения количества нечетных чисел на любом интервале с целочисленными границами.
Ниже приводится соответствующая программа.

program p11;
var
  a,b,n:integer;
begin
  Write('Введите границы интервала: '); Readln(a,b);
  { защита от неверного порядка ввода }
  if a<b then begin n:=a; a:=b; b:=n end;
  { если надо, корректируем границы на нечет }
  if (a mod 2)=0 then a:=a-1;
  if (b mod 2)=0 then b:=b+1;
  { сам расчет }
  n:=(a-b) div 2 + 1;
  Writeln('Количество нечетных чисел на интервале равно ',n)
end.

Тестовое решение:
Введите границы интервала: -3 7
Количество нечетных чисел на интервале равно 6

1.2 В противоположность предложенному решению, где сначала надо было думать, можно использовать "метод грубой силы" (программисты называют его "брутфорс" - от английского bruteforce), т.е. программировать ни о чем не думая.
Ниже - пример такого решения. Оно более короткое, но при больших интервалах время решения окажется на несколько порядков больше.

program p12;
var
  a,b,i,k:integer;
begin
  Write('Введите границы интервала: '); Readln(a,b);
  { защита от неверного порядка ввода }
  if a<b then begin k:=a; a:=b; b:=k end;
  k:=0;
  for i:=a downto b do
    if (i mod 2)<>0 then k:=k+1;
  Writeln('Количество нечетных чисел на интервале равно ',k)
end.

Тестовое решение:
Введите границы интервала: -3 7
Количество нечетных чисел на интервале равно 6

2.1. Тут задача на первый взгляд стандартная и вроде бы думать нечего - в цикле накапливаем сумму:

program p21;
var
  i:integer;
  x,s:real;
begin
  Write('Введите значение x: '); Readln(x);
  s:=0; i:=2;
  while i<=20 do begin s:=s+i*x; i:=i+2 end;
  Writeln('Cумма членов последовательности равна ',s)
end.

Тестовое решение:
Введите значение x: 2.15
Cумма членов последовательности равна 236.5

2.2. Но и тут есть место для размышлений. Опять вспоминаем математику.
\displaystyle s=\Sigma_{i=2}^{20}(x\times i), \ i=2k, \ k \in &#10;\mathbb N \\ s=x\times \Sigma_{k=1}^{10}(2\times &#10;k)=2x\times\Sigma_{k=1}^{10}k
Но полученная сумма - это сумма арифметической прогрессии с начальным членом, равным единице,  конечным членом, равным 10 и разностью 1. Формула такой суммы известна и мы продолжаем преобразования.
\displaystyle s=2x\times \frac{a_1+a_n}{2}\times n=n\times &#10;x\times(a_1+a_n); \\ a_1=1; \ a_n=10; \ n=a_n-a_1+1=10-1+1=10; \\ &#10;s=10\times x\times11=110\times x
Теперь можно и программу написать.

program p22;
var
  x:real;
begin
  Write('Введите значение x: '); Readln(x);
  Writeln('Cумма членов последовательности равна ',110*x)
end.

Тестовое решение:
Введите значение x: 2.15
Cумма членов последовательности равна 236.5

Пары приведенных решений призваны показать, что первое пришедшее в голову решение обычно всегда не лучшее. А еще - что для качественного программирования надо учить математику.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота