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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.83
mikhail90
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 76
#1

Определение количества разрядов у числа - C++

28.07.2013, 14:37. Просмотров 3410. Ответов 29
Метки нет (Все метки)

Написал программку, которая должна определять количество разрядов у чисел. При вводе двухзначных и трехзначных, программа правильно определяет разряд, но при вводе четырехзначных чисел и более, начинает определять неправильно. Помогите определить проблему.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
using namespace std ;
int main()
{
    int dvoich, chislo,razryd = 0, del = 1;
    cout << "Enter 2-oe chislo: " ;
    cin >> dvoich ;
    chislo = dvoich ;
    while (chislo > 9)
    {
        chislo = chislo / del ;
        razryd++ ;
        del *= 10 ;
    }
    cout << razryd << endl ;
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2013, 14:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определение количества разрядов у числа (C++):

Определение количества разрядов числа через функцию - C++
Вводится последовательность из N целых чисел. Найти количество двух- и количество трех-разрядных чисел в последовательности

Проверить, как изменилось количество разрядов в числе M по сравнению с количеством разрядов числа N - C++
Выручайте....Дано натуральное число N. Определить M=N!. Проверить, как изменилось количество разрядов в числе M по сравнению с...

Проверить как изменится количество разрядов в числе M по сравнению с количеством разрядов числа N - C++
Дано натуральное число N. Определить M=N! Проверить как измениться количевство разрядов в числе M по сравнению с количеством разрядов...

Функцией оформить определение количества делителей числа - C++
Вводится последовательность целых чисел, 0 – конец последовательности. Для каждого числа последовательности найти количество его делителей.

Определение количества нулей в двоичной записи числа - C++
Определить, сколько нулей в двоичной записи произвольного числа А (100&lt;А&lt;1000)?

Массивы. Определение максимального целого числа из произвольного количества введенных значений - C++
определение максимального целого числа из произвольного количества введенных значений.На каждом цикле ввода нового значения числа...

29
alsav22
5429 / 4824 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.07.2013, 15:42 #16
Уточню, в 10 студии не работает, в mingw работает.
0
Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
28.07.2013, 15:45 #17
ну и фиг с тем преобразованием, главное методика нахождения работает
0
Thinker
Эксперт С++
4229 / 2203 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
28.07.2013, 16:54 #18
Цитата Сообщение от Хулиган Посмотреть сообщение
C++
1
2
3
4
5
6
7
int main()
{
    int i;
    cin>>i;
    cout<<((int)log10(i)+1);
    
}
а что, разложение в ряд Тейлора стало эффективнее простого разбора на цифры с помощью % и /?
0
Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
28.07.2013, 17:12 #19
Цитата Сообщение от Thinker Посмотреть сообщение
а что, разложение в ряд Тейлора стало эффективнее
по моему об эффективности речи не было
0
Bend3r
149 / 136 / 18
Регистрация: 29.07.2012
Сообщений: 709
28.07.2013, 17:14 #20
Цитата Сообщение от Хулиган Посмотреть сообщение
по моему об эффективности речи не было
Значит вы гавенный программист, если у вас эффективность, не на первом месте.
0
Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
28.07.2013, 17:20 #21
Цитата Сообщение от Bend3r Посмотреть сообщение
Значит вы гавенный программист, если у вас эффективность, не на первом месте
в чем заключается эффективность использования % и / в отличии от нахождения логарифма?
0
Bend3r
149 / 136 / 18
Регистрация: 29.07.2012
Сообщений: 709
28.07.2013, 17:27 #22
Цитата Сообщение от Хулиган Посмотреть сообщение
в чем заключается эффективность использования % и / в отличии от нахождения логарифма?
Стоп, ну вы писали что о эффективности речи не было, я вам и ответил. А вопрос этот задайте гуглу.
0
Thinker
Эксперт С++
4229 / 2203 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
28.07.2013, 17:29 #23
Цитата Сообщение от Хулиган Посмотреть сообщение
в чем заключается эффективность использования % и / в отличии от нахождения логарифма?

Не по теме:

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

0
Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
28.07.2013, 17:32 #24
Цитата Сообщение от Bend3r Посмотреть сообщение
А вопрос этот задайте гуглу
ну раз вы участвуете в данном обсуждении и можете рассуждать об умениях других, вы должны быть компетентны в данном вопросе, а то какашками кидаться все умеют!

Добавлено через 1 минуту
Цитата Сообщение от Thinker Посмотреть сообщение
ам значительно больше операций.
так мы говорим о эффективности или о быстродействии программы?
0
Thinker
Эксперт С++
4229 / 2203 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
28.07.2013, 17:35 #25

Не по теме:

Хулиган, к вам никто не придирается, просто, в силу простоты вашего алгоритма, кто-то может не углядеть, что там больше вычислений, вот и все, а так, неплохой алгоритмик правда для long long пойдет ли



Добавлено через 46 секунд
Цитата Сообщение от Хулиган Посмотреть сообщение
так мы говорим о эффективности или о быстродействии программы?

Не по теме:

а разве это не одно и тоже (почти)?

0
Bend3r
149 / 136 / 18
Регистрация: 29.07.2012
Сообщений: 709
28.07.2013, 17:40 #26
Цитата Сообщение от Thinker Посмотреть сообщение
а разве это не одно и тоже (почти)?
Не всегда. Иногда необходимы долгие вычисления, но ответ будет правильнее, чем при быстрых вычислениях, но ответ будет менее точный.
0
Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
28.07.2013, 17:41 #27
Цитата Сообщение от Thinker Посмотреть сообщение
к вам никто не придирается
та все нормально, просто подумал, что если менее эффективен, то при каких то обстоятельствах результат может быть неправильным, вот и уточнил, а тут ещё и товарищ которому надо сделать свой высер в комментарии, с целью показаться умнее, чем на самом деле)
0
fan_stud
0 / 0 / 0
Регистрация: 17.04.2013
Сообщений: 7
28.07.2013, 22:23 #28
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
using namespace std;
 
int main()
{
    unsigned value, razryad(1); //число, разряд
 
    cin >> value;
 
    while ( (value / 10) != 0 ){
        value =  value / 10;
        razryad++;
   }
    cout << razryad;
}
0
Schizorb
510 / 462 / 16
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
Завершенные тесты: 1
28.07.2013, 23:22 #29
fan_stud, тогда уж просто:

C++
1
2
while(value /= 10)
    razryad++;
0
fan_stud
0 / 0 / 0
Регистрация: 17.04.2013
Сообщений: 7
29.07.2013, 13:25 #30
Schizorb, согласен, спасибо
0
29.07.2013, 13:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.07.2013, 13:25
Привет! Вот еще темы с ответами:

Измерение количества единичных разрядов в файле - C++
Разработать объектно-ориентированную программу для измерения общего числа единичных разрядов во всех байтах любого заданного файла. Его имя...

Возврат количества разрядов после запятой - C++
Друзья, подскажите Мне нужно определить, сколько было введено пользователем цифр после запятой (если введено 45.560731 необходимо...

Посчитать m последних разрядов числа n - C++
Всем привет! В свободное от работы время занимаюсь программированием - подтягиваю свой уровень до того, который был когда-то раньше,...

Вывести все числа с количеством разрядов n - C++
Нужно вывести все n-цифровые числа. Вводится одное число n и выводится все n-цифровые числа


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

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

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