Блог пользователя talgat09

Автор talgat09, 10 лет назад, По-русски

Доброго времени суток! поршу помочь с задачей как можно ее решить ???

  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

»
10 лет назад, # |
Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

[deleted]

»
10 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

Попробуй поразрядно подсчитать, сколько раз будет встречаться каждая цифра.

»
10 лет назад, # |
Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

А можно так:

1) Пусть у нас есть функция f(l,r) считающая сумму цифр на отрезке [l,r].

2) Если l не делится на 10, то увеличим его пока оно не будет делится на 10 и прибавим пройденные суммы "в лоб". Аналогично с r(только остаток от деления на 10 должен быть равен 9).

3) Теперь у нас есть отрезок вида [10p;10q — 1]. Но тогда ответ на запрос это f(p,q)+45*(q-p) (45 — это сумма цифр от 0 до 9)

4) Терминальное условие рекурсии r<10. Тогда считаем в лоб.

Вот рабочий код

»
10 лет назад, # |
Rev. 3   Проголосовать: нравится -8 Проголосовать: не нравится

deleted

  • »
    »
    10 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Нужно подсчитать сумму выписанных цифр, а не чисел.