Использование циклов. Работа с целыми числами - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Из двух чисел получить новое путем замены четных цифр первого числа на соответствующие по порядку цифры второго числа (23146236, 463525 -> 03163535)

Решение задачи: «Использование циклов. Работа с целыми числами»

textual
Листинг программы
#include <stdio.h>
 
unsigned long long replace_even_digits(unsigned long long n1, unsigned long long n2)
{
  unsigned long long n = 0;
  for (unsigned long long mul = 1; n1 > 0 || n2 > 0; n += (n1 % 10 % 2 == 0 ? n2 : n1) % 10 * mul, n1 /= 10, n2 /= 10, mul *= 10);
  return n;
}
 
int main(void)
{
  printf("%llu\n", replace_even_digits(23146236, 463525));
}

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

В данном коде функция replace_even_digits заменяет все чётные цифры в числе n1 на те же цифры из числа n2, а затем возвращает получившееся число. В функции main выводится результат работы функции replace_even_digits(23146236, 463525)

  1. Дано два числа: n1 = 23146236, n2 = 463525.
  2. В функции replace_even_digits инициализируется переменная n = 0, которая будет хранить результат.
  3. Запускается цикл for, который выполняется до тех пор, пока n1 > 0 || n2 > 0.
  4. Внутри цикла к переменной n прибавляется (n1 % 10 % 2 == 0 ? n2 : n1) % 10 * mul, где:
    • n1 % 10 - остаток от деления n1 на 10 (первая чётная цифра в числе n1).
    • n1 % 2 - остаток от деления n1 на 2 (последняя чётная цифра в числе n1).
    • n2 - число n2.
    • mul - это множитель, который итерируется на каждой итерации цикла (1, 10, 100, 1000 и т.д.).
  5. После каждой итерации цикла числа n1 и n2 делятся на 10, а переменная mul умножается на 10.
  6. В конце цикла возвращается число n.
  7. В функции main выводится результат работы функции replace_even_digits(23146236, 463525) с помощью функции printf.

ИИ поможет Вам:


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

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы