По данному натуральному n определите количество последовательностей длинны n из 0 и 1, её содержащих трёх единиц подряд. Гарантируется, что ответ не превосходит
Для этого надо 17 поделить на 2, и каждое последующее частное (покуда это возможно) делить на 2. 17:2=8 (остаток 1) --- 8:2=4 (остаток 0) === 4:2=2 (остаток 0) +++ 2:2=1 (остаток 0) *** """ Теперь с конца начинаем записывать числа, начиная с 1, потом переходим на остатки снизу вверх 1 0 0 0 1 Получается, две единицы *** """ +++ === ---
Using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace zn { class Program { public static void Main(string[] args) { Console.Write("Введите кол-во минут по тарифу: "); int a = Convert.ToInt32(Console.ReadLine()); Console.Write("Введите цену за минуту по тарифу: "); int b = Convert.ToInt32(Console.ReadLine()); Console.Write("Введите цену за минуту сверх тарифа: "); int c = Convert.ToInt32(Console.ReadLine()); Console.Write("Введите время пользования услугами связи за месяц в минутах: "); int d = Convert.ToInt32(Console.ReadLine()); int res = a > d ? a * b : a * b + (d - a) * c; Console.WriteLine("Плата за пользование: " + res); Console.ReadKey(); } } }
Для этого надо 17 поделить на 2, и каждое последующее частное (покуда это возможно) делить на 2.
17:2=8 (остаток 1)
---
8:2=4 (остаток 0)
===
4:2=2 (остаток 0)
+++
2:2=1 (остаток 0)
*** """
Теперь с конца начинаем записывать числа, начиная с 1, потом переходим на остатки снизу вверх
1 0 0 0 1 Получается, две единицы
*** """ +++ === ---
ответ: 2