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

Упростить программу, находящую количество нулей в числе - C++

Восстановить пароль Регистрация
 
Glitch
 Аватар для Glitch
7 / 7 / 4
Регистрация: 28.09.2015
Сообщений: 102
27.09.2016, 12:56     Упростить программу, находящую количество нулей в числе #1
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
#include <iostream>
#include <stdio.h>
using namespace std;
 
int main() 
{
    setlocale(LC_ALL, "rus");
 
    int num;
    int zero = 0;
    int count = 0;
 
    cout << "Введите число: ";
    cin >> num;
 
    for (int i = 10; count < (int)ceil(log10(abs(num))); i *= 10)
    {
        count++;
        if ((num % i / (i / 10)) == 0)
        {
            zero++;
        }
    }
    cout << zero << endl;
 
    return 0;
}
Подскажите, как можно максимально упростить код
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2016, 12:56     Упростить программу, находящую количество нулей в числе
Посмотрите здесь:

нужно написать программу, находящую количество чисел меньших x, которые делятся в точности на три простых числа. C++
Написать программу, выясняющую количество четных цифр во введенном пользователем числе. C++
C++ Написать программу, которая вычисляет количество цифр во введенном пользователем числе
C++ Подскажите как можно упростить присвоение числе переменным?!
Определить количество нулей в цифровой записи числа, кроме нулей в младших разрядах (Pascal -> С++) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4324 / 3745 / 1260
Регистрация: 14.04.2014
Сообщений: 14,685
27.09.2016, 13:31     Упростить программу, находящую количество нулей в числе #2
C++
1
2
3
4
5
while (num > 0)
{
    if (num % 10 == 0) ++zero;
    num /= 10;
}
GbaLog-
Не Эксперт C++
1528 / 632 / 177
Регистрация: 24.08.2014
Сообщений: 2,564
Записей в блоге: 1
Завершенные тесты: 2
27.09.2016, 13:37     Упростить программу, находящую количество нулей в числе #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/////////////////////////////////////////////////////////////////////
#include <string>
#include <algorithm>
#include <iostream>
/////////////////////////////////////////////////////////////////////
int main()
{
    int n{};
    std::cin >> n;
    std::string tmp{ std::to_string( n ) };
    
    std::cout 
        << std::count( tmp.cbegin(), tmp.cend(), '0' ) 
        << std::endl;
}
SpBerkut
Объявлятель переменных
 Аватар для SpBerkut
905 / 231 / 113
Регистрация: 24.09.2011
Сообщений: 874
Завершенные тесты: 2
27.09.2016, 13:41     Упростить программу, находящую количество нулей в числе #4
C++
1
2
3
4
5
6
7
unsigned getZerosAmount(unsigned value){
    unsigned result=value%10==0;
    while (value/=10){
        result+=value%10==0;
    }
    return result;
}
Dsasdf
Заблокирован
27.09.2016, 13:48     Упростить программу, находящую количество нулей в числе #5
Цитата Сообщение от GbaLog- Посмотреть сообщение
C++
1
2
int n{};
std::cin >> n;
Зачем, инициализировать, чтобы потом снова инициализировать?. Как ни зайду один ржачь.

Господа все намного проще:
C++
1
2
3
4
5
6
  int count = 0, t;
    cin>>t;
    do
        if (t % 10 == 0)count++;
        while (t /= 10);
    cout << count;
GbaLog-
Не Эксперт C++
1528 / 632 / 177
Регистрация: 24.08.2014
Сообщений: 2,564
Записей в блоге: 1
Завершенные тесты: 2
27.09.2016, 13:50     Упростить программу, находящую количество нулей в числе #6
Цитата Сообщение от Dsasdf Посмотреть сообщение
Зачем, инициализировать, чтобы потом снова инициализировать?
Потому что привычка у меня хорошая выработалась, инициализировать все переменные по-умолчанию, если не нужно как-то по-другому.
Цитата Сообщение от Dsasdf Посмотреть сообщение
Как ни зайду один ржачь.
Не умрите там от смеха.
Dsasdf
Заблокирован
27.09.2016, 13:57     Упростить программу, находящую количество нулей в числе #7
Цитата Сообщение от GbaLog- Посмотреть сообщение
Потому что привычка у меня хорошая выработалась, инициализировать все переменные по-умолчанию, если не нужно как-то по-другому.
Это не привычка, а {вырезано модератором}. Делать в трех строчках кода, где никто не сможет запутаться и забыть. Да, еще бы научился правильно инициализировать )). Но, учить не буду. Все удаляй посты, блочь, пиши два листа ответов ))).
stzer
38 / 59 / 17
Регистрация: 26.10.2013
Сообщений: 172
Завершенные тесты: 2
27.09.2016, 14:00     Упростить программу, находящую количество нулей в числе #8
Цитата Сообщение от Dsasdf Посмотреть сообщение
Но, учить не буду
Извините, не сдержался. А учить чему?
GbaLog-
Не Эксперт C++
1528 / 632 / 177
Регистрация: 24.08.2014
Сообщений: 2,564
Записей в блоге: 1
Завершенные тесты: 2
27.09.2016, 14:03     Упростить программу, находящую количество нулей в числе #9
Цитата Сообщение от Dsasdf Посмотреть сообщение
Делать в трех строчках кода, где никто не сможет запутаться и забыть.
Что делать? Инициализировать по-умолчанию?
Цитата Сообщение от Dsasdf Посмотреть сообщение
Да, еще бы научился правильно инициализировать )).
Я что-то не так делаю?
Цитата Сообщение от Dsasdf Посмотреть сообщение
Но, учить не буду .
А Вас кто-то станет слушать, если Вы станете учить?
Цитата Сообщение от Dsasdf Посмотреть сообщение
Это не привычка, а {вырезано модератором}.
Посмотрел бы я на Вас, когда Вы в дебаге будете 3 года сидеть и не понимать, почему у Вас получилось какое-то совершенно непонятное значение, а я буду чай в это время пить.
Glitch
 Аватар для Glitch
7 / 7 / 4
Регистрация: 28.09.2015
Сообщений: 102
27.09.2016, 15:02  [ТС]     Упростить программу, находящую количество нулей в числе #10
Ого, спасибо всем за помощь
_Ivana
2191 / 1396 / 124
Регистрация: 01.03.2013
Сообщений: 4,154
Записей в блоге: 2
27.09.2016, 22:38     Упростить программу, находящую количество нулей в числе #11
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
do r+=n%10==0; while(n/=10);
Glitch
 Аватар для Glitch
7 / 7 / 4
Регистрация: 28.09.2015
Сообщений: 102
27.09.2016, 23:09  [ТС]     Упростить программу, находящую количество нулей в числе #12
_Ivana, Спасибо, после такого очевидно простого решения, чувствую себя ещё тупее чем раньше
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2016, 13:39     Упростить программу, находящую количество нулей в числе
Еще ссылки по теме:

Определить количество нулей в цифровой записи числа, кроме нулей в младших разрядах C++
C++ Определить количество нулей в цифровой записи числа, кроме нулей в младших разрядах
Упорядочить массив по убыванию количества нулей в числе C++

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

Или воспользуйтесь поиском по форуму:
gru74ik
Модератор
 Аватар для gru74ik
3124 / 1350 / 167
Регистрация: 20.02.2013
Сообщений: 3,867
Записей в блоге: 18
29.09.2016, 13:39     Упростить программу, находящую количество нулей в числе #13
Цитата Сообщение от Dsasdf Посмотреть сообщение
Это не привычка, а {вырезано модератором}. Делать в трех строчках кода, где никто не сможет запутаться и забыть
Как-то Стенли Липпману доверия больше, чем Вам:
Цитата Сообщение от Stanley Lippman
We recommend initializing every object of built-in type. It is not always
necessary, but it is easier and safer to provide an initializer until you can
be certain it is safe to omit the initializer.
Yandex
Объявления
29.09.2016, 13:39     Упростить программу, находящую количество нулей в числе
Ответ Создать тему
Опции темы

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