Выбросить из записи заданного числа указанные цифры, оставив прежним порядок остальных цифр - C (СИ)
Формулировка задачи:
Вот условие:
Выбросить из записи числа n цифры 0 и 5, оставив прежним порядок остальных цифр. Если из числа удалены все цифры, то вывести 0. Ввод В первой строке содержится натуральное число n (1≤n≤4294967295). Вывод Вывести измененное числоВот решение:
#include <math.h>
#include <stdio.h>
int main()
{
unsigned long int a, b, i, k;
scanf("%d", &a);
i = 0;
b = a;
while (b > 10) {
b = b / 10;
i++;
};
k = pow(10, i);
b = a;
while (i > 0) {
b = a / k;
a = a % k;
i--;
if (b != 5 & b != 0) {
printf("%d", b);
};
};
}Решение задачи: «Выбросить из записи заданного числа указанные цифры, оставив прежним порядок остальных цифр»
textual
Листинг программы
while (b > 10) {
b = b / 10;
i++;
};
Объяснение кода листинга программы
В данном коде выполняется деление числа b на 10 в условии цикла while. Это приводит к тому, что число b уменьшается в 10 раз при каждой итерации цикла. Переменная i увеличивается на единицу после каждой итерации цикла. Код будет выполняться до тех пор, пока b не станет меньше или равным 10. В это время i будет содержать количество итераций, которые были выполнены.