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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.63
SeryZone
56 / 28 / 5
Регистрация: 09.03.2012
Сообщений: 726
Записей в блоге: 1
#1

Сколько цифр в числе степени двойки? - C++

02.07.2012, 13:22. Просмотров 2529. Ответов 21
Метки нет (Все метки)

Написать программу, сколько чисел будет в n-ной степени двойки.
Например:
В 22 будет 1 знак.
В 216 - 5 знаков.
Вводится число n, а выводится вычисленное количество знаков. Число n влазит в тип int.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2012, 13:22     Сколько цифр в числе степени двойки?
Посмотрите здесь:
Определить сколько цифр в заданном числе, найти сумму цифр, и последнюю цифру C++
Определить сколько цифр в заданном натуральном числе, и чему равна сумма его цифр C++
C++ Дано натурально число n. Сколько цифр в этом числе. Чему равняется сумма цифр. Найти первую цифру
Определить, сколько цифр в числе n C++
Сколько процентов от цифр в числе больше 5-и C++
C++ Вывести сколько и каких цифр в каждом числе
C++ Подсчитать, сколько десятичных цифр содержится в числе
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кот Ангенс
317 / 267 / 38
Регистрация: 24.05.2012
Сообщений: 629
02.07.2012, 14:17     Сколько цифр в числе степени двойки? #16
Это был бред. После scanf нужно добавить строку:
C
1
n = 1 << n;
Catstail
Модератор
22515 / 10920 / 1774
Регистрация: 12.02.2012
Сообщений: 18,067
02.07.2012, 14:31     Сколько цифр в числе степени двойки? #17
Вот. Проверяйте. Обошлись без логарифмов...

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
33
34
35
36
37
38
39
40
41
42
43
44
45
#include "iostream.h"
 
int SizePow2(int n)
{
    int S=1,k=0,m=4,i,c; 
 
    for (i=0; i <= n; i++)
    {
         k++;
                         
         if ((k % m) == 0) 
         {
                
             k = 0;
 
             if (i != n) S++;
             
             if (m == 4) 
             {
                m = 3;
                c = 0;
             } 
             else
             {
                c++;
                if (c == 2) m=4;
             }
         }
    }
         
    return S;
 
}
 
 
int main(int argc, char* argv[])
{
    int n;
     
    cin >> n;
 
    cout << SizePow2(n) << endl;
 
    return 0;
}
diagon
Higher
1928 / 1194 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
02.07.2012, 14:35     Сколько цифр в числе степени двойки? #18
Цитата Сообщение от Catstail Посмотреть сообщение
Вот. Проверяйте. Обошлись без логарифмов...
Неправильно же.
Проверил для n == 100500, выдало 30151(а правильно - 30254).
softmob
1248 / 698 / 155
Регистрация: 20.02.2010
Сообщений: 1,035
02.07.2012, 14:38     Сколько цифр в числе степени двойки? #19
переписал из программы перевода чисел, мож пригодится. дает точный ответ, но пригодна лишь для n < 1000
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream>
#include <vector>
using namespace std;
 
int func(int n)
{
    vector<int> a(n+1);
    a.front() = 1;
    int q = 2, p = 10, res = 0, s = n+1;
 
    do
    {
        int j = 0;
        int demolition = 0; 
 
        for (int i = 0; i != s; ++i)
        {       
            demolition *= q;        
            demolition += a[i];
 
            if (demolition < p && i && j) 
            {
                a[j] = 0; 
                ++j;
            }
 
            if (demolition >= p) 
            {   
                a[j] = demolition / p;  
                demolition %= p;   
                ++j;
            }
        } 
 
        s = j;
        ++res;
    }
    while(s);
 
    return res; 
}
 
int main(void)
{
    size_t n;
    cin >> n;
    cout << func(n);
    return 0;
}
Catstail
Модератор
22515 / 10920 / 1774
Регистрация: 12.02.2012
Сообщений: 18,067
02.07.2012, 14:46     Сколько цифр в числе степени двойки? #20
diagon-у. Беру тайм-аут, буду проверять...
softmob
1248 / 698 / 155
Регистрация: 20.02.2010
Сообщений: 1,035
02.07.2012, 15:10     Сколько цифр в числе степени двойки? #21
Цитата Сообщение от sandye51 Посмотреть сообщение
return static_cast<unsigned long long int>(floor(log10(2) * n))
ток еще единицу добавить
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <cmath>
 
int main(void)
{
    unsigned long long n;
    std::cin >> n;
    std::cout << static_cast<unsigned long long>(floor(log10(2) * n) + 1);
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2012, 17:10     Сколько цифр в числе степени двойки?
Еще ссылки по теме:
Определить, сколько цифр в целом положительном числе C++
Сколько цифр в числе и чему равна их сумма? C++
Степень двойки в степени десятки C++
C++ Массив из чисел степени двойки
Найти число максимальное близкое к степени двойки C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Catstail
Модератор
22515 / 10920 / 1774
Регистрация: 12.02.2012
Сообщений: 18,067
02.07.2012, 17:10     Сколько цифр в числе степени двойки? #22
Увы... Чередование интервалов смены цифр не подтверждается. Значит, пока без логарифмов не обойтись.
Yandex
Объявления
02.07.2012, 17:10     Сколько цифр в числе степени двойки?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru