#c
#c
Вопрос:
Из книги Кэя Хорстманна «C для всех», глава 4: Циклы
Напишите программу, которая суммирует сумму всех нечетных цифр n. (Например, если n равно 32677, сумма будет равна 3 7 7 = 17)
Я не знаю, как заставить компьютер «видеть» числа, например, разделять их
Ответ №1:
n % 10
возвращает значение единицы. Вы можете разобраться с этим оттуда, верно?
Комментарии:
1. Да, я понял это. Я просто не подумал о том, чтобы потом разделить число на 10
Ответ №2:
Вот подсказка. В C есть оператор modulus %
. При делении двух чисел будет получен остаток. Итак, если бы я хотел узнать последнюю цифру в числе, которое было больше 10, я бы построил по модулю 10 и получил результат
int lastDigit = number % 10;
Ответ №3:
Последняя цифра целого числа с основанием 10 i
равна i % 10
. (Для справки, %
это оператор modulus; он в основном возвращает остаток от деления левого числа на правое.)
Итак, теперь у вас есть последняя цифра. Как только вы это сделаете, добавьте это к текущему итогу, который вы сохраняете, разделите i
на 10 (фактически сдвигая цифры вниз на одну единицу) или, в вашем случае, на 100 (две единицы) и начните с начала. Повторяйте до i == 0
.
Ответ №4:
Люди здесь скорее не предоставляют вам ответ на ваше упражнение, а предоставляют вам подсказки, чтобы вы могли найти ответ самостоятельно и, что более важно, понять его.
Для начала вам помогут следующие арифметические операции:
loop:
right_most_digit = n % 10
n = n / 10
end_loop