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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
CheGuevara
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 34
#1

Количество нулей в записи числа - C++

05.06.2011, 14:54. Просмотров 1570. Ответов 9
Метки нет (Все метки)

Помогите пожалуйста написать эдакое...
Дано натуральное число n. Подсчитать количество нулей в записи данного числа в десятичной системе счисления.
На С# написал примерно, а на С++ немогу... Вот код на с#, мож кто сможет переделать в с++?
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            string n = textBox1.Text;
            int i = 0;
            foreach (char c in n)
            {
                if (c == '0')
                {
                    ++i;
                }
            }
            label1.Text = "Количество нулей: " + i;
        } } }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2011, 14:54     Количество нулей в записи числа
Посмотрите здесь:

Количество нулей в двоичной записи числа C++
C++ Массив состоит из нулей и единиц. Сформировать массив,состоящий из нулей и подсчитать их количество
Взять двоичную запись десятичного числа, посчитать количество нулей C++
Составить программу,которая для любого натурального числа печатает количество цифр в записи этого числа C++
C++ Простые числа и количество нулей
Определить количество нулей в цифровой записи числа, кроме нулей в младших разрядах (Pascal -> С++) C++
Определить количество нулей в цифровой записи числа, кроме нулей в младших разрядах C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
1924 / 1190 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.06.2011, 14:59     Количество нулей в записи числа #2
Если я правильно понял условие(дается 10ое, надо найти количество нулей в 10ой же системе счисления), то так:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
int main(){
    int a,count=0;
    std::cin >> a;
    if (!a) std::cout << 1;else
        {for (;a;a/=10)
        if (a%10==0) count++;
    std::cout << count;}
    return 0;
}
CheGuevara
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 34
05.06.2011, 15:04  [ТС]     Количество нулей в записи числа #3
diagon, что-то это как-то слишком сложно.
Мне бы просто циклом простейшим проверить в строке n каждый символ(равен 0 или нет) и чтобы накручивался счетчик i.
P.S. Как для n задать тип string???
diagon
Higher
1924 / 1190 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.06.2011, 15:07     Количество нулей в записи числа #4
Это наоборот самое просто решение=)
Если n=0, то сразу же выводим еденицу, иначе потрошим его с конца.
Если остаток от деления числа на 10 равен нулю, то его последняя цифра-нуль. В таком случае увеличиваем счетчик.
Далее делим число на 10, отсекая у него одну цифру, и так до тех пор, пока не порежем все число.
стринг задается
std::string str; (str-имя переменной)
CheGuevara
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 34
05.06.2011, 15:13  [ТС]     Количество нулей в записи числа #5
diagon, а что значит эта строка? std::cin >> a;
Кстати что-то в C++ билдере этот вариант ниразу не работает.
diagon
Higher
1924 / 1190 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.06.2011, 15:15     Количество нулей в записи числа #6
Ввод числа а
Вот со стрингами, для больших чисел работает.
Но если не знать STL, то понять это сложновато.
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <sstream>
#include <algorithm>
bool iszero(char x){return (x==48)?true:false;}
int main(){
    std::string str;
    std::cin >> str;
    int count=std::count_if(str.begin(),str.end(),iszero);
    std::cout << count;
    return 0;
}
Кстати что-то в C++ билдере этот вариант ниразу не работает.
Странно... Что пишет?
Amarted
157 / 19 / 2
Регистрация: 26.02.2010
Сообщений: 56
05.06.2011, 15:32     Количество нулей в записи числа #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
using namespace std;
int main()
{
    string stringNumber;//если смущает можно имя и покороче
    int count = 0; //счётчик
    cin>>stringNumber; //считываем с клавиатуры в нашу строку
    for ( int i = 0; i<stringNumber.size(); ++i) // бональный цикл, как просил
    {
        if ( stringNumber[i] == '0' ) //бональная проверка на равенство
            count++;
    }
    cout<<count; //вывод результата
    return 0;
}
Наверное ты хотел что-то вроде этого?
CheGuevara
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 34
05.06.2011, 15:33  [ТС]     Количество нулей в записи числа #8
Много буков)
вот именно STL я и не знаю.
Amarted
157 / 19 / 2
Регистрация: 26.02.2010
Сообщений: 56
05.06.2011, 15:36     Количество нулей в записи числа #9
Если ты про мой пример, то там стл и не нужно знать, а много буков это из-за имён и коментарие, убери их и назови переменные i, x, y, и будет тебе счастье.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2011, 15:37     Количество нулей в записи числа
Еще ссылки по теме:

Определение количества нулей в двоичной записи числа C++
C++ Определить количество нулей в цифровой записи числа, кроме нулей в младших разрядах
Определить количество подряд идущих нулей в младших разрядах числа C++
C++ Найти количество нулей в конце записи факториала числа
Найти все натуральные числа, меньшие N, в записи которых содержаться K подряд идущих нулей C++

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

Или воспользуйтесь поиском по форуму:
diagon
Higher
1924 / 1190 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.06.2011, 15:37     Количество нулей в записи числа #10
Если многобукав - это ошибки, то попробуй убрать везде std::, если останутся, поставь using namespace std; после инклудов
Yandex
Объявления
05.06.2011, 15:37     Количество нулей в записи числа
Ответ Создать тему
Опции темы

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