Форум программистов, компьютерный форум CyberForum.ru

Подсчитывать количество цифр 2 - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычисления с использованием подпрограмм, функции и процедуры http://www.cyberforum.ru/cpp-beginners/thread754326.html
Помогите пожалуйста!)) 1)Дважды вычислить значение выражения, первый раз используя процедуру, а второй - функцию. http://s020.***********/i704/1301/41/57860c703137.jpg
C++ Opengl и С++ для начинающего Приветствую всех! Можете пожалуйста подсказать хорошую книгу или видео урок по opengl и c++ для начинающего. Спасибо за ответы! ;) http://www.cyberforum.ru/cpp-beginners/thread754311.html
Разбить текст на страницы C++
Дан текстовый файл. Преобразовать его, разбив текст на страницы и пронумеровав их, причем номер нечетной страницы должен размещаться в правом нижнем углу, а номер четной страницы - в ее левом нижнем углу. Число стока странице задается, а ширина страницы определяется самой длинной строкой в данной странице. Конец страницы отмечается символом с кодом 12, который помещается в отдельной строке. ...
Как найти координаты точки на прямой удаленной от заданной точки на х C++
Добрый день! Помогите мне пожалуйста со следующей задачей. Дано 3 точки с координатами A(x1,y1), B(x2,y2), C(x3,y3) Нужно найти координаты точки D(x4,y4), которая лежит на прямой AB и удалена от точки С на 10. Два дня уже потратил на решение, но так и не добился результата. Спать по ночам уже не могу! :(
C++ игра змейка http://www.cyberforum.ru/cpp-beginners/thread754288.html
Здравствуйте! Знакомый попросил помощи, объяснить подробно как работает программа и как сделать разные уровни в игре. Но я не особо ее понимаю.. #include <allegro.h> void init(); void deinit(); void gene(int snakelong); void newgame(); int pause(); void miesto();
C++ Из данных точек перебрать все комбинации по 2 треугольника и проверить, принадлежит ли первый треугольник второму В общем пишу курсовую работу. Уже устал биться с ней... Вот задание: дано N точек, из них нужно перебрать все комбинации по 2 треугольника и проверить, принадлежит ли первый треугольник второму. Помогите... Вот код который я осилил, но не знаю как убрать проверку комбинаций треугольников, которые уже были мной проверены. #include <stdio.h> #include <math.h> float square(float m1, float n1,... подробнее

Показать сообщение отдельно
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
07.01.2013, 17:07     Подсчитывать количество цифр 2
Как-то так оно решается
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
 
typedef unsigned long long big_t;
 
long long foo(big_t n)
{
    big_t count = 0, res =  n % 10 > 1;
 
    for (big_t cur = 10; n >= cur; cur *= 10)
    {
        count = count * 10 + cur / 10;
        
        int z = n / cur % 10;
        res += z * count + (z > 2) * cur + (z == 2) * (1 + n % cur);
    }
 
    return res;
}
 
int main()
{
    big_t n = big_t(1e18) + 2;
 
    std::cout << foo(n) << std::endl;
}
Это динамика + комбинаторика, сложность O( log10(n) )
В моей быдлореализации считает ответ для n = 10104 за секунду.
http://liveworkspace.org/code/4DGGDA

P.S. особо не тестировал, возможны ошибки.
 
Текущее время: 22:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru