Как найти количество цифр в последовательности

0 / 0 / 0

Регистрация: 12.02.2013

Сообщений: 45

1

Количество цифр в последовательности

11.03.2013, 21:49. Показов 5289. Ответов 14


Студворк — интернет-сервис помощи студентам

В общем вот задачка:
Ввести с клавиатуры целое число, которое будет являться количеством символов во вводимой последовательности. Найти количество цифр во введенной последовательности.

Надо написать код программы, а я даже понять не могу что от меня хотят



0



127 / 125 / 16

Регистрация: 03.07.2011

Сообщений: 354

11.03.2013, 22:29

2

считываете целое число x(например), далее считываете x символов. Считаете сколько из этих символов являются цифрами.



0



0 / 0 / 0

Регистрация: 12.02.2013

Сообщений: 45

11.03.2013, 22:37

 [ТС]

3

Цитата
Сообщение от ZoRT
Посмотреть сообщение

считываете целое число x(например).

а можно по подробнее или пример какой-нибудь?



0



Venzo

127 / 125 / 16

Регистрация: 03.07.2011

Сообщений: 354

11.03.2013, 22:43

4

ввод с клавиатуры целого числа:

C++
1
2
int x;
cin >> x;



0



Черный ворон

137 / 131 / 57

Регистрация: 31.01.2012

Сообщений: 435

11.03.2013, 22:49

5

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream.h>
int main()
{
int n; string s="";
cout<<"input n: "<<endl; cin>>n;
cout<<"input your string: "<<endl;
cin.ignore();
getline(cin,s);
int count=0;
for (int i=0; i<s.length(); i++){
        int k=(int)s[i];
        if  ((k>47)&&(k<58)) count++;
}
cout<<"it is "<<count<<" numerics in string"<<endl;
 
system ("pause");
        return 0;
}



0



127 / 125 / 16

Регистрация: 03.07.2011

Сообщений: 354

11.03.2013, 22:54

6

Черный ворон, странно, вы n считали, а потом уже никак и не используете ее. Да и можно isdigit() использовать, вроде лучше не опираться на опеределенные коды символов



0



137 / 131 / 57

Регистрация: 31.01.2012

Сообщений: 435

11.03.2013, 23:05

7

ZoRT, что странного в том как я считал переменную n?
по поводу второго замечания: цифры 0123456789 находятся в числе базовых 128 символов (еще со времен 7-битной таблицы кодировки) и потому являются универсальными (имеют одни и те же номера) для произвольной кодировки.



0



127 / 125 / 16

Регистрация: 03.07.2011

Сообщений: 354

11.03.2013, 23:18

8

Цитата
Сообщение от Черный ворон
Посмотреть сообщение

что странного в том как я считал переменную n?

ну вы n считали, а ввод не ограничили n символами. для чего она тогда была нужна?

Цитата
Сообщение от Черный ворон
Посмотреть сообщение

по поводу второго замечания: цифры 0123456789 находятся в числе базовых 128 символов (еще со времен 7-битной таблицы кодировки) и потому являются универсальными (имеют одни и те же номера) для произвольной кодировки.

ну допустим во всех кодировках одинаковые коды. Но смысл использовать значения кодов, если так же можно использовать символьные литералы? Тем более для человека, не знающего коды символов наизусть (как я), не сразу понятно что именно выбирает код.



0



Ev[G]eN

Mobile Software Engineer

Эксперт С++

5366 / 1585 / 956

Регистрация: 23.01.2011

Сообщений: 3,214

11.03.2013, 23:20

9

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
int main ()
{
    int stringSize;
    std::cout << "Size of string: ";
    std::cin >> stringSize;
 
    char symbol;
    int countOfDigits = 0;
    for (int i = 0; i < stringSize; i++) {
        std::cin >> symbol;
        countOfDigits += (isdigit(symbol)) ? 1 : 0;
    }
    std::cout << "Digits in the string: " << countOfDigits << std::endl;
 
    return 0;
}



1



oleg@tor1

32 / 17 / 3

Регистрация: 05.09.2011

Сообщений: 151

11.03.2013, 23:23

10

Вот такой простой вариант.

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
#include <vector>       //Векторы.
#include <iostream>     //Основная (Ввод - Вывод).
#include <locale.h>     //Необходима для setlocale(LC_ALL,"Russian").
 
using namespace std;    
 
int main()
{   
    setlocale(LC_ALL,"russian");
        int x = 0,c=0;
            int N = 0;
                int cnt = 0;
                    vector<char> V_1;
                char y;
            cout << "Введите цифру:" << endl;
    cin >> x;
    
    cout << "Введите символы для последовательности:" << endl;
    
    for (unsigned int i=0; i<x;++i)
    {
        cin >> y;
        V_1.push_back(y);       
    }
 
 
    for (unsigned int i=0; i<V_1.size();++i)
    {       
            if (V_1[i]== '0'||V_1[i] == '1'||V_1[i] == '2'||V_1[i] == '3'||V_1[i] == '4'||V_1[i] == '5'||V_1[i]== '6'||V_1[i] == '7'||V_1[i] == '8'||V_1[i] == '9')
            {
                ++cnt;
            }
    }
 
    cout << "Количество цифр во введенной последовательности:" << endl;
        cout << cnt << endl;
            system ("pause");
    return 0;
 
}//end_main



0



Ev[G]eN

11.03.2013, 23:26

Не по теме:

oleg@tor1, доставило :rofl:



1



32 / 17 / 3

Регистрация: 05.09.2011

Сообщений: 151

11.03.2013, 23:28

12

Ev[G]eN, видишь какая радость )) Так ведь работает ))) Только не говори, что ВАЗ тоже ездит



0



137 / 131 / 57

Регистрация: 31.01.2012

Сообщений: 435

11.03.2013, 23:30

13

Цитата
Сообщение от ZoRT
Посмотреть сообщение

ну вы n считали, а ввод не ограничили n символами. для чего она тогда была нужна?

ок. моя промашка.

Цитата
Сообщение от ZoRT
Посмотреть сообщение

Но смысл использовать значения кодов, если так же можно использовать символьные литералы?

я конечно не специалист, но вроде бы при таком сравнении компилятор все равно за меня подставит тоже самое преобразование (хотя может это и ошибочная мысль). а компиляторы бывают разные и работают по разному… зачем на его хрупкие плечи перекладывать лишний труд?



0



0 / 0 / 0

Регистрация: 12.02.2013

Сообщений: 45

12.03.2013, 14:16

 [ТС]

14

countOfDigits += (isdigit(symbol)) ? 1 : 0;

что означает эта строчка?!



0



32 / 17 / 3

Регистрация: 05.09.2011

Сообщений: 151

12.03.2013, 14:38

15

«? : » — это условная операция. В данном случае: если символ — цифра, тогда счетчик countOfDigits увеличивается на 1, если не цифра — 0;

Добавлено через 2 минуты
Подробнее.



0



Посчитать общее количество определенных цифр в числах

Просмотров 13.8к. Обновлено 15 октября 2021

Посчитать, сколько раз встречается определенная цифра в введенной последовательности чисел. Количество вводимых чисел и цифра, которую необходимо посчитать, задаются вводом с клавиатуры.

  1. Запросить у пользователя количество вводимых чисел (n) и цифру для подсчета (d).
  2. Присвоить счетчику цифр значение 0.
  3. Выполнить n раз цикл, в теле которого
    1. запрашивать очередное число,
    2. пока это число не сократиться до нуля
      1. извлекать последнюю его цифру и сравнивать с цифрой, которую надо посчитать,
      2. увеличивать значение счетчика цифр на 1, если сравниваемые цифры совпадают,
      3. избавляться от последней цифры числа.
  4. В конце программы вывести количество посчитанных цифр на экран.

Pascal

количество цифр в числе паскаль


var
m: word;
n,d,i, count: byte;
begin
write('Количество чисел: ');
readln(n);
write('Цифра: ');
readln(d);
count := 0;
for i:=1 to n do begin
readln(m);
while m > 0 do begin
if m mod 10 = d then
count := count + 1;
m := m div 10;
end;
end;
writeln('Количество цифр: ', count);
end.



Количество чисел: 6
Цифра: 5
301
8952
155
306
200
541
Количество цифр: 4

Язык Си


#include

main () {
int n,d,m,count,i;
printf("Количество чисел: ");
scanf("%d", &n);
printf("Цифра: ");
scanf("%d", &d);
count = 0;
for(i=0;i< n;i++) {
scanf("%d", &m);
while (m>0) {
if (m%10 == d) count += 1;
m = m / 10;
}
}
printf("Количество цифр: %dn", count);
}



Количество чисел: 4
Цифра: 1
10500
1400
500
201
Количество цифр: 3

Python

количество цифр в числе python (питон)


n = int(input("Сколько будет чисел? "))
d = int(input("Какую цифру считать? "))
count = 0
for i in range(1,n+1):
m = int(input("Число " + str(i) + ": "))
while m > 0:
if m%10 == d:
count += 1
m = m // 10

print("Было введено %d цифр %d" % (count, d))



Сколько будет чисел? 5
Какую цифру считать? 0
Число 1: 508
Число 2: 1024
Число 3: 300
Число 4: 10101
Число 5: 15
Было введено 6 цифр 0

КуМир


алг количество цифры
нач
цел m,n,d,i,count;
вывод "Количество чисел: "
ввод n
вывод "Цифра: "
ввод d
count := 0
нц для i от 1 до n
ввод m
нц пока m > 0
если mod(m,10) = d то
count := count + 1
все
m := div(m,10)
кц
кц
вывод "Количество цифр: ", count
кон



Количество чисел: 5
Цифра: 0
1099
8586
2300
15
10
Количество цифр: 4

Basic-256


input "Количество чисел: ", n
input "Цифра: ", d
c = 0
for i=1 to n
input m
while m > 0
if m%10 = d then c = c+1
m = m 10
endwhile
next i
print "Количество цифр: " + c



Количество чисел: 10
Цифра: 4
1234
11
1287
8945
200783
12
84
9600
544
244
Количество цифр: 7

Мой код проходит по всем тестам на 90%, не проходит один тест.
Проблему почему не проходит на все 100 — не нашёл..

Условие: Найти количество цифр заданного целого числа number.

Пример: вводим число 37 должно вывести число 2.

Код:

#include <iostream>

int main() {
    long long int number = 0;
    int result = 0;
    std::cin >> number;
    while(number != 0) {
        number /= 10;
        result++;
    }
    std::cout << result << "n";
}

insolor's user avatar

insolor

45.8k16 золотых знаков54 серебряных знака95 бронзовых знаков

6

Почти наверняка в том единственном тесте вводится 0.

Делать условие именно на то, что юзер введёт цифру 0, и нужно вывести 1. Както колхозно, как можно реализовать без етого?

Делать отдельно условие нормально, но если есть желание сделать без условия, то можно и без него:

cin >> number;

int result = 1;
while (number /= 10) ++result;

cout << result;

ответ дан 5 мар 2022 в 10:17

Qwertiy's user avatar

QwertiyQwertiy

121k24 золотых знака121 серебряный знак291 бронзовый знак

3

Если вводите с консоли, то и не нужно рассматривать последовательность цифр как число. Можно просто читать и «выбрасывать» символы_цифры, с увеличением счетчика:

int res{};         
while (isdigit(getchar())) ++res;
printf("%d", res);

Вариантов решения много.
Задание должно четко выразить что критично и каким образом задается объект. Потому что «задано число» наталкивает написать функцию с целочисленным аргументом, а пример рождает вопрос «откуда вводится?»…

ответ дан 5 мар 2022 в 10:23

AR Hovsepyan's user avatar

AR HovsepyanAR Hovsepyan

15.8k3 золотых знака13 серебряных знаков30 бронзовых знаков

2

Оглавление:

  • 1 Задача — Посчитать общее количество определенных цифр в числах
    — программирование на Pascal, Си, Кумир, Basic-256, Python

    • 1.1 Pascal
    • 1.2 Язык Си
    • 1.3 Python
    • 1.4 КуМир
    • 1.5 Basic-256

Задача — Посчитать общее количество определенных цифр в числах
— программирование на Pascal, Си, Кумир, Basic-256, Python

Посчитать, сколько раз встречается определенная цифра в введенной последовательности чисел. Количество вводимых чисел и цифра, которую необходимо посчитать, задаются вводом с клавиатуры.

  1. Запросить у пользователя количество вводимых чисел (n) и цифру для подсчета (d).
  2. Присвоить счетчику цифр значение 0.
  3. Выполнить n раз цикл, в теле которого
    1. запрашивать очередное число,
    2. пока это число не сократиться до нуля
      1. извлекать последнюю его цифру и сравнивать с цифрой, которую надо посчитать,
      2. увеличивать значение счетчика цифр на 1, если сравниваемые цифры совпадают,
      3. избавляться от последней цифры числа.
  4. В конце программы вывести количество посчитанных цифр на экран.

Pascal

var
m: word;
n,d,i, count: byte;
begin
write(‘Количество чисел: ‘);
readln(n);
write(‘Цифра: ‘);
readln(d);
count := 0;
for i:=1 to n do begin
readln(m);
while m > 0 do begin
if m mod 10 = d then
count := count + 1;
m := m div 10;
end;
end;
writeln(‘Количество цифр: ‘, count);
end. Количество чисел: 6
Цифра: 5
301
8952
155
306
200
541
Количество цифр: 4

Язык Си

#include <stdio.h>

main () {
int n,d,m,count,i;
printf(«Количество чисел: «);
scanf(«%d», &n);
printf(«Цифра: «);
scanf(«%d», &d);
count = 0;
for(i=0;i<n;i++) {
scanf(«%d», &m);
while (m>0) {
if (m%10 == d) count += 1;
m = m / 10;
}
}
printf(«Количество цифр: %dn», count);
} Количество чисел: 4
Цифра: 1
10500
1400
500
201
Количество цифр: 3

Python

n = int(input(«Сколько будет чисел? «))
d = int(input(«Какую цифру считать? «))
count = 0
for i in range(1,n+1):
m = int(input(«Число » + str(i) + «: «))
while m > 0:
if m%10 == d:
count += 1
m = m // 10

print(«Было введено %d цифр %d» % (count, d)) Сколько будет чисел? 5
Какую цифру считать? 0
Число 1: 508
Число 2: 1024
Число 3: 300
Число 4: 10101
Число 5: 15
Было введено 6 цифр 0

КуМир

алг количество цифры
нач
цел m,n,d,i,count;
вывод «Количество чисел: »
ввод n
вывод «Цифра: »
ввод d
count := 0
нц для i от 1 до n
ввод m
нц пока m > 0
если mod(m,10) = d то
count := count + 1
все
m := div(m,10)
кц
кц
вывод «Количество цифр: «, count
кон Количество чисел: 5
Цифра: 0
1099
8586
2300
15
10
Количество цифр: 4

Basic-256

input «Количество чисел: «, n
input «Цифра: «, d
c = 0
for i=1 to n
input m
while m > 0
if m%10 = d then c = c+1
m = m 10
endwhile
next i
print «Количество цифр: » + c Количество чисел: 10
Цифра: 4
1234
11
1287
8945
200783
12
84
9600
544
244
Количество цифр: 7

Did you find apk for android? You can find new Free Android Games and apps.

Описание задачи

Программа принимает число и выводит количество цифр в нем.

Решение задачи

  1. Берем значение целого числа и записываем его в переменную.
  2. Используем цикл while и при помощи оператора целочисленного деления «уничтожаем» каждую цифру числа начиная с последней, а при каждой итерации цикла специально созданную переменную (так называемый счетчик цикла) увеличиваем на единицу. После того как введенное в начале число станет равным 0, цикл прекратит свою работу.
  3. Выводим значение этого счетчика на экран.
  4. Конец.

Исходный код

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

n = int(input("Введите число:"))
count = 0
while(n > 0):
    count = count + 1
    n = n // 10
print("Количество цифр равно:", count)

Объяснение работы программы

  1. Записываем введенное пользователем число в переменную n.
  2. Задаем переменную count и инициируем ее значением 0.
  3. Используем цикл while и при помощи оператора целочисленного деления «уничтожаем» каждую цифру числа начиная с конца.
  4. При каждой итерации цикла переменная count увеличивается на 1.
  5. Как только цифры в числе заканчиваются и число n становится равным 0, цикл прекращает свою работу.
  6. Выводим переменную count на экран.

Результаты работы программы

Пример 1:
Введите число:123
Количество цифр равно: 3
 
Пример 2:
Введите число:1892
Количество цифр равно: 4

Примечание переводчика

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

print("Количество цифр равно:", len(input("Введите число:")))

Здесь введенное число принимается как строка и мы просто выводим ее длину.

Понравилась статья? Поделить с друзьями:
  • Как найти энергию при горении
  • Просто найди такого же сумасшедшего как ты
  • Как исправить число в pdf
  • Как найти куда скачалась музыка на андроид
  • Как можно исправить зубы винирами