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

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

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

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

  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("Введите число:")))

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

На чтение 5 мин Просмотров 6.8к. Опубликовано

В этой статье мы рассмотрим, как посчитать количество цифр в числе на языке Python. Эта задача может быть полезна в различных областях программирования, например, для проверки корректности ввода данных, анализа числовых данных и многих других. Мы рассмотрим несколько способов решения этой задачи, начиная от наиболее простого и заканчивая более сложными и продвинутыми.

Содержание

  1. Способы подсчета цифр в числе
  2. Способ 1: Преобразование в строку и подсчет символов
  3. Способ 2: Использование цикла и операции целочисленного деления
  4. Способ 3: Использование рекурсии
  5. Способ 4: Использование математических функций

Способы подсчета цифр в числе

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

Способ 1: Преобразование в строку и подсчет символов

Один из простейших способов подсчета цифр в числе в языке Python — это преобразовать число в строку и подсчитать количество символов в этой строке с помощью функции len(). Для этого необходимо использовать встроенную функцию str() для преобразования числа в строку. Затем с помощью функции len() можно получить количество символов в этой строке, что будет равно количеству цифр в числе. Этот способ не требует использования дополнительных модулей или библиотек, поэтому он достаточно прост в реализации. Однако он не является самым эффективным способом подсчета цифр в больших числах.

Приведём простой пример:

num = 12345
num_str = str(num)
count = len(num_str)
print("Количество цифр в числе", num, ":", count)

В этом примере мы преобразуем число num в строку num_str с помощью встроенной функции str(), а затем считаем количество символов в строке с помощью функции len(). Результат выводится с помощью функции print().

Предположим, что нам необходимо запросить число у пользователя. И так как мы сразу получаем от пользователя сразу строку, то наш код преобразуется следующим образом:

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

Всё хорошо, но мы забыли про отрицательные числа. Если пользователь введёт отрицательное число, то наша программа посчитает знак минус как символ, и мы не получим правильный результат.

Поэтому нам нужно добавить вызов функции abs() для преобразования отрицательного числа в положительное перед началом подсчета. И вот что у нас получится:

num_str = input("Введите число:")
num = abs(int(num_str))
count = len(str(num))
print("Количество цифр в числе", num_str, ":", count)

В первой строке кода мы получаем от пользователя число в виде строки. Во второй строке сначала преобразовываем строку в число, а после вызываем функцию abs() . В третье строке считаем количество символов, не забыв при этом преобразовать число обратно в строку.

Способ 2: Использование цикла и операции целочисленного деления

Еще один способ подсчета количества цифр в числе — использование цикла и операции целочисленного деления. Этот метод заключается в том, чтобы повторять целочисленное деление числа на 10 до тех пор, пока оно не станет меньше 10. Каждый раз при целочисленном делении на 10 из числа удаляется одна цифра, и таким образом можно подсчитать количество цифр в числе. Этот подход основан на том факте, что при целочисленном делении числа на 10 результат будет равен числу, в котором отсутствует последняя цифра. Например, при целочисленном делении числа 123 на 10 получим 12.

В результате, чтобы использовать этот способ для подсчета количества цифр в числе, можно использовать цикл while, который будет продолжаться, пока число не станет меньше 10. При каждой итерации цикла мы будем  целочисленно делить число на 10, увеличивать счетчик цифр на 1 и повторять цикл до тех пор, пока число не станет меньше 10. Когда число меньше 10, добавляем 1 к счетчику и выходим из цикла.

Например, если у нас есть число 12345, мы можем использовать этот метод для подсчета количества цифр в числе следующим образом:

number = 12345
count = 0
while number > 0:
    count += 1
    number = number // 10

print("Количество цифр в числе:", count)

Если нам необходимо чтобы программа работала и с отрицательными числами, то нам также нужно добавить вызов функции abs() для преобразования отрицательного числа в положительное перед началом подсчета. Также добавим условие для 0, и получим следующий код:

num = -98765
count = 0
if num == 0:
    count = 1
else:
    num = abs(num)
    while num > 0:
        count += 1
        num //= 10

print("Количество цифр в числе:", count)

Способ 3: Использование рекурсии

Для подсчета количества цифр в числе можно использовать рекурсию. Рекурсия — это метод, при котором функция вызывает саму себя. В данном случае функция принимает число и сравнивает его с нулем. Если число равно нулю, то функция возвращает 0. Если число не равно нулю, то функция вызывает саму себя, передавая число, целочисленно деленное на 10, и увеличивает счетчик на 1. Рекурсивный вызов функции продолжается, пока число не станет равным 0. Затем функция возвращает счетчик — количество цифр в числе.

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

Пример рекурсивной функции для подсчета количества цифр в числе:

def count_digits(n):
    n = abs(n)  # преобразование отрицательного числа в положительное
    if n < 10:
        return 1
    else:
        return 1 + count_digits(n // 10)

Способ 4: Использование математических функций

Для подсчета количества цифр в числе можно использовать математические функции. Например, можно воспользоваться свойством логарифма, которое позволяет вычислить количество цифр в числе, используя десятичный логарифм. Для этого нужно взять логарифм числа по основанию 10 и добавить к результату 1. Полученное число и будет являться количеством цифр в исходном числе. Данный подход может оказаться полезным, когда требуется узнать количество цифр в очень больших числах, так как для работы с такими числами может потребоваться много времени и памяти.

Приведём пример:

import math

num = 12345
count = int(math.log10(num))+1

print("Количество цифр в числе", num, "равно", count)

В этом коде мы импортируем модуль math и используем функцию log10() для определения десятичного логарифма числа. Затем мы добавляем 1 к результату и приводим его к целочисленному типу, чтобы получить количество цифр в числе.

Мой код проходит по всем тестам на 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.7k16 золотых знаков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

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

Просмотров 13.7к. Обновлено 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

Написал код, но он считает одно число, а не по 1 цифре из всех введенных.
Если не сложно распишите с пояснением, несложный принцип подсчета введенных цифр, и чтобы каждую проверить как раз, четная — нечетная. Вернее, четная или нечетная понимаю, как сделать, но чтобы по одной цифре проверял — не пойму.

package com.javarush.task.task06.task0606;

import java.io.*;

/*
Чётные и нечётные циферки
*/

public class Solution {

public static int even;
public static int odd;

public static void main(String[] args) throws IOException {
//напишите тут ваш код
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int i = Integer.parseInt(reader.readLine());
if (i%2 == 0) { even++;}
else { odd++; }

System.out.println(«Even: » + even + » » + «Odd: » + odd);
}
}

Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Как найти по графику параболы определить коэффициенты
  • Как найти объем формула математика 5 класс
  • Скрипит маятник в детской кроватке как исправить
  • Как найти полковника мур
  • Как найти угол ромба зная его диагонали

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии