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

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

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

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

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

Написать программу, сколько чисел будет в n-ной степени двойки.
Например:
В 22 будет 1 знак.
В 216 - 5 знаков.
Вводится число n, а выводится вычисленное количество знаков. Число n влазит в тип int.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2012, 13:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сколько цифр в числе степени двойки? (C++):

Определить сколько цифр в заданном числе, найти сумму цифр, и последнюю цифру - C++
дано натуральное число n (n<10000). определить сколько цифр, найти сумму цифр, и последнюю цифру. Не могу сообразить где косяк вышел ...

Определить сколько цифр в заданном натуральном числе, и чему равна сумма его цифр - C++
Дано натуральное число n (n<=100). Определить сколько цифр в числе n, чему равна сумма его цифр.

Дано натурально число n. Сколько цифр в этом числе. Чему равняется сумма цифр. Найти первую цифру - C++
Желательно в С

Определить, сколько цифр в числе n - C++
Дано натуральное число n (n<=100). Определить: 1) сколько цифр в числе n; 2) чему равна сумма его цифр.

Сколько процентов от цифр в числе больше 5-и - C++
Дано натуральное число n. Сколько процентов от чисел в этом числе больше, чем 5? Пример: n=2012, ответ = 0% n=199, ответ = 67%

Сколько цифр в числе и чему равна их сумма? - C++
дано натуральное число n(n<=100) a) Сколько цифр в числе n? б) Чему равно сумма его чисел? в) Найти последнюю цифру г) первую...

21
Кот Ангенс
318 / 268 / 38
Регистрация: 24.05.2012
Сообщений: 629
02.07.2012, 14:17 #16
Это был бред. После scanf нужно добавить строку:
C
1
n = 1 << n;
0
Catstail
Модератор
22828 / 11194 / 1812
Регистрация: 12.02.2012
Сообщений: 18,431
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;
}
0
diagon
Higher
1930 / 1196 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
02.07.2012, 14:35 #18
Цитата Сообщение от Catstail Посмотреть сообщение
Вот. Проверяйте. Обошлись без логарифмов...
Неправильно же.
Проверил для n == 100500, выдало 30151(а правильно - 30254).
1
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;
}
0
Catstail
Модератор
22828 / 11194 / 1812
Регистрация: 12.02.2012
Сообщений: 18,431
02.07.2012, 14:46 #20
diagon-у. Беру тайм-аут, буду проверять...
0
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;
}
0
Catstail
Модератор
22828 / 11194 / 1812
Регистрация: 12.02.2012
Сообщений: 18,431
02.07.2012, 17:10 #22
Увы... Чередование интервалов смены цифр не подтверждается. Значит, пока без логарифмов не обойтись.
0
02.07.2012, 17:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2012, 17:10
Привет! Вот еще темы с ответами:

Подсчитать, сколько десятичных цифр содержится в числе - C++
Задача 6.*(1-6.cpp, 16.dsp) Подсчитать, сколько десятичных цифр содержится в числе, которое ввел пользователь. Использовать оператор while.

Вывести сколько и каких цифр в каждом числе - C++
Есть массив из трех чисел , нужно вывести сколько и каких цифр в каждом числе. Программа работает только для первого числа , дальше счетчик...

Определить, сколько цифр в целом положительном числе - C++
нужно сделать на С. -Задано целое додатне число N. Определить, сколько в нем цифр.

Степень двойки в степени десятки - C++
Допустим, есть большое число типа double или extended. Дана степень десятки: 1Е+228. 1Е+228=2760. Вот задача: Сколько степеней двойки в...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Опции темы

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