Использование циклов. Работа с целыми числами - 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)
- Дано два числа: n1 = 23146236, n2 = 463525.
- В функции replace_even_digits инициализируется переменная n = 0, которая будет хранить результат.
- Запускается цикл for, который выполняется до тех пор, пока n1 > 0 || n2 > 0.
- Внутри цикла к переменной 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 и т.д.).
- После каждой итерации цикла числа n1 и n2 делятся на 10, а переменная mul умножается на 10.
- В конце цикла возвращается число n.
- В функции main выводится результат работы функции replace_even_digits(23146236, 463525) с помощью функции printf.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д