С клавиатуры вводится натуральное пятизначное число вывести сумму четных цифр если число четное

Обновлено: 17.05.2024

У меня проблемы с этой проблемой. Я должен найти количество четных цифр в количестве.

Так, например, если число равно 146, то есть 2 четных цифры.

И если число равно 802, то есть 3 четных цифры.

Мне сказали, что n% 10 - значение самой правой цифры. n/10 содержит все цифры, кроме самой правой цифры.

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

Я согласен с @kimreik в том, что это не очень хорошо подходит для рекурсии (поскольку проблему можно было бы лучше решить с помощью цикла while); но это очень типичный пример, когда вы начинаете учиться программировать рекурсию, поскольку я подозреваю, что OP делает.

С рекурсией вы можете сделать это так

Но это не подходит для использования рекурсии.

Итак, идея использования рекурсии для обработки серии состоит в том, что вы определяете функцию, которая обрабатывает и удаляет один элемент из набора. Увидев, что вас интересуют цифры, у вас есть 2 варианта определения вашего набора из заданного int.

Первый вариант - передать int в строку и перевести каждый символ обратно в int. Это то, что я реализовал ниже

В качестве альтернативы вы могли бы делить по своей базе (10) на силу значимости цифры (0 было самой правой цифрой и считалось слева). Или более красноречиво, как кимрейк, уменьшающий число на целые деления последовательно. (142/10/10 == 142/100 == 1 == "142" [0]).

Синтаксис для преобразования целого в строку - Integer.toString(int) . Это будет полезно, поскольку оно позволяет нам получать доступ к каждой цифре без какой-либо математики, а также позволяет нам брать подстроки, которые мы можем передать в следующий экземпляр нашего рекурсивного метода.

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

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

Наш базовый случай - это пустое жало, то есть пустое число. Который содержит 0 четных чисел. Поскольку мы возвращаемся к пустующему набору, этот тип алгоритма называется редуктивным.

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

Теперь, когда мы знаем, что нам нужно делать, как выглядит функция?

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

Посчитать четные и нечетные цифры введенного натурального числа. Например, если введено число 34560, то у него 3 четные цифры (4, 6 и 0) и 2 нечетные (3 и 5).

  1. Присвоить переменным-счетчикам четных ( even ) и нечетных ( odd ) цифр значение 0.
  2. Пока введенное число не уменьшится до нуля выполнять нижеследующие действия:
    1. Если число четное (делится нацело на 2), значит последняя его цифра четная и надо увеличить на 1 переменную even .
    2. Иначе число нечетное и следует добавить 1 к переменной odd .
    3. Убрать последнюю цифру числа путем деления числа нацело на 10.

    Pascal

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

    Язык Си

    Python

    посчитать четные и нечетные цифры числа python(питон)

    КуМир

    Basic-256


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

    var n: word;
    even, odd: byte;
    begin
    readln(n);
    even := 0;
    odd := 0;
    while n > 0 do begin
    if n mod 2 = 0 then
    even := even + 1
    else
    odd := odd + 1;
    n := n div 10;
    end;
    writeln('четных ', even);
    writeln('нечетных ', odd);
    end.

    56709
    четных 2
    нечетных 3

    main() int n,even,odd;
    scanf("%d",&n);
    even = 0; // четные
    odd = 0; // нечет.
    while (n>0) if (n%2 == 0) even += 1;
    else odd += 1;
    n = n/10;
    >
    printf("четных - %d, нечетных - %d\n", even, odd);
    >

    100238
    четных - 4, нечетных - 2

    посчитать четные и нечетные цифры числа python(питон)

    n = int(input())
    even=odd=0
    while n>0:
    if n%2 == 0:
    even += 1
    else:
    odd += 1
    n = n//10
    print("четных - %d, нечетных - %d" % (even, odd))

    12098
    четных - 3, нечетных - 2

    алг чет_нечет
    нач
    цел n, even, odd
    ввод n
    even := 0
    odd := 0
    нц пока n > 0
    если mod(n,2) = 0 то even := even + 1
    иначе odd := odd + 1
    все
    n := div(n,10)
    кц
    вывод "Четных: ", even, нс
    вывод "Нечетных: ", odd
    кон

    308591
    Четных: 2
    Нечетных: 4

    input n
    even=0
    odd=0
    while n>0
    if n%2 = 0 then
    even = even + 1
    else
    odd = odd + 1
    endif
    n = n\10
    endwhile
    print "Четных " + even
    print "Нечетных " + odd

    Выделение в цикле цифр в числе от младших разрядов к старшим

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

    Разделение числа на цифры

    Идея алгоритма:
    Для каждого числа необходимо найти его разряд.

    1. 1 => единица;
    2. 42 => 4 десятка и 2 единицы;
    3. 829 => 8 сотен, 2 десятка, 9 единиц.

    Поиск разрядов числа

    Нам дано число: 123456789

    Последнюю цифру мы легко найдем, нам достаточно наше число разделить 10 с остатком. А что делать с предпоследней цифрой? Тут как минимум есть два варианта:

    1. /10 – откинули последнюю цифру, а затем снова %10;
    2. %10 и его степень. Способ довольно неудобный. Поэтому мы не будем им пользоваться.

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

    1. 123456789 % 10 = 9;
    2. 123456789 / 10 = 12345678;
    3. Переходим к следующей итерации
    4. 12345678 % 10 = 8;
    5. 12345678 / 10 = 1234567;

    И так далее пока не переберем все число.

    Алгоритм разделения числа на цифры

    Алгоритм разделения числа на цифры

    1. Ввести число a;
    2. Запустить цикл;
    3. Найти цифру при помощи a % 10;
    4. Вывести цифру (или использовать ее в задаче);
    5. Уменьшить а в 10 раз.

    Этот цикл будет работать до тех пор, пока n не превратится в 0.

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

    Использование алгоритма

    Мы можем применять данный алгоритм в этих случаях

    1. Анализ зависимостей в цифрах числа;
    2. Определение присутствия цифры;
    3. Подсчёт цифр;
    4. Подсчёт количества цифр;
    5. Замена цифр в числе;
    6. Анализ чисел в других системах счисления;
    7. Анализ бинарных данных.

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

    Разбор задачи Счастливый билет

    Задача счастливый билет

    Например, мы хотим написать программу, которая проанализирует билет, который нам дали в автобусе, является он счастливым или нет? Если вы не помните или не знали, как это делается, напомню. Билет считается счастливым, когда сумма первых трех чисел равняется сумме трех последних.

    Нам вводится номер билета и необходимо проверить, является ли он счастливым.
    Давайте посчитаем. Посмотрите на номер нашего билета: 306 450.

    • Если мы просуммируем 3+0+6 == 4+5+0;
    • То получим в первой и второй сумме чисел одинаковое значение 9 == 9;
    • Это означает, что наш билет счастливый.

    Все элементарно, но теперь встает вопрос, как же нам разбить наше число на отдельные цифры? А мы уже знаем, как это сделать.

    Алгоритм решения

    1. Ввести число;
    2. Разделять его на цифры;
    3. Первые три числа добавлять в sum1;
    4. Последние три числа добавлять в sum2;
    5. Сравнить sum1 и sum2.

    Решение задачи Счастливый билет

    Разложи на цифры

    Дано восьмизначное число, необходимо написать в строку каждую цифру данного числа через пробел, начиная с разряда единиц.
    Формат входных данных
    Дано целое число N (10 000 000 Tags

    В параллелограмме ABCD диагонали AC и BD пересекаются в точке K. Докажите, что площадь параллелограмма ABCD в четыре раза больше площади треугольника AKD.

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


    Рассмотрим треугольники ABC и ACD.
    Сторона AC - общая для этих треугольников.
    AB=CD и BC=AD (по свойству параллелограмма).
    Следовательно, рассматриваемые треугольники равны (по третьему признаку). А значит равны и их площади, и равны эти площади половине площади параллелограмма.
    Рассмотрим треугольник ACD.
    Как только что выяснили, площадь этого треугольника равна половине площади параллелограмма.
    Отрезок DK - является медианой (по третьему свойству параллелограмма), и соответственно делит этот треугольник на два равновеликих треугольника, т.е. равных по площади ( свойство медианы).
    Следовательно площадь AKD равна половине площади треугольника ACD.
    S AKD =S ACD /2=S ABCD /4.
    ч.т.д.

    Вы можете поблагодарить автора, написать свои претензии или предложения на странице 'Про нас'

    Другие задачи из этого раздела

    Задача №223031


    В треугольнике ABC BM – медиана и BH – высота. Известно, что AC=88 и BC=BM. Найдите AH.

    Задача №106F52


    В треугольнике ABC сторона AB=32, AC=64, точка O — центр окружности, описанной около треугольника ABC. Прямая BD, перпендикулярная прямой AO, пересекает сторону AC в точке D. Найдите CD.

    Задача №78E39F

    В параллелограмме ABCD диагонали AC и BD пересекаются в точке O. Докажите, что площадь параллелограмма ABCD в четыре раза больше площади треугольника AOD.

    Задача №4D5C0E

    Основание AC равнобедренного треугольника ABC равно 12. Окружность радиуса 8 с центром вне этого треугольника касается продолжения боковых сторон треугольника и касается основания AC в его середине. Найдите радиус окружности, вписанной в треугольник ABC.

    Задача №DF648D


    Отрезки AB и CD являются хордами окружности. Найдите расстояние от центра окружности до хорды CD, если AB=20, CD=48, а расстояние от центра окружности до хорды AB равно 24.

    Читайте также: