Форум программистов, компьютерный форум, киберфорум
Наши страницы

Подсчитывать количество цифр 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++
Дан текстовый файл. Преобразовать его, разбив текст на страницы и пронумеровав их, причем номер нечетной страницы должен размещаться в правом нижнем углу, а номер четной страницы - в ее левом нижнем...
Как найти координаты точки на прямой удаленной от заданной точки на х C++
Добрый день! Помогите мне пожалуйста со следующей задачей. Дано 3 точки с координатами A(x1,y1), B(x2,y2), C(x3,y3) Нужно найти координаты точки D(x4,y4), которая лежит на прямой AB и удалена от...
C++ игра змейка http://www.cyberforum.ru/cpp-beginners/thread754288.html
Здравствуйте! Знакомый попросил помощи, объяснить подробно как работает программа и как сделать разные уровни в игре. Но я не особо ее понимаю.. #include <allegro.h> void init(); void...
C++ Из данных точек перебрать все комбинации по 2 треугольника и проверить, принадлежит ли первый треугольник второму В общем пишу курсовую работу. Уже устал биться с ней... Вот задание: дано N точек, из них нужно перебрать все комбинации по 2 треугольника и проверить, принадлежит ли первый треугольник второму.... подробнее

Показать сообщение отдельно
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,235
07.01.2013, 04:11
короче сейчас подсчитал
0-10 1
0-100 20
0-1000 300
0-10000 4000
0-100000 50000
0-1000000 600000
тут даже таблицы не надо
количество двоек равно количеству разрядов умноженное на 10 в степени количество разрядов-1

т.е
примерно так
C++
1
2
3
4
5
6
7
8
9
10
11
12
kol2=0;
kol_raz=0;
while(n)
{
n=/10;
kol_raz++;
}
kol2=kol_raz;
for( int i=1;i<kol_raz;i++)
{
 kol2*=10;
}
а дальше перебором

Добавлено через 42 минуты
вот так например
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
26
27
28
29
30
31
32
int fnc(int N)
{
int n=N;
int kol2_1=0;
int kol2_2=0;
int kol2=0;
int kol_raz=0;
int tmp=1;
 if(n<2)
   return 0;
 
while(n>9)
{
 n/=10;
kol_raz++;
tmp*=10;
}
kol2_1=kol_raz;
for( int i=1;i<kol_raz;i++)
{
 kol2_1*=10;
}
 
for(int i=tmp;i<=N;i++)
  {
       for (int j = i; j != 0; j /= 10)
          if (j%10 == 2) 
             kol2_2++;
   }
 kol2=kol2_2+kol2_1;
return kol2;
}
проверил вроде работает

Добавлено через 9 минут
Цитата Сообщение от ValeryS Посмотреть сообщение
for (int j = i; j != 0; j /= 10)
* * * * * if (j%10 == 2)
* * * * * * *kol2_2++;
вот еще бы от этого тормозного цикла избавится
может раскладывать число в массив и по нему проходить ?
остаток от деления выбросим
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.