Member 13087536 Ответов: 3

Сумма цифр числа


int num, sum = 0, r;
 Console.WriteLine("Enter a Number : ");
 num = int.Parse(Console.ReadLine());
while (num != 0)
            {
r = num % 10;
num = num / 10;
sum = sum + r;
}

возьмем num = 123
Р=123%10=12.3, то как это вычислить две другие линии, я не понял, может вы объясните мне, я новичок в программирования

Что я уже пробовал:

я попробовал тот же код, и вывод получился правильным, но я не могу понять, как работает формула

3 Ответов

Рейтинг:
24

Andy Lanng

На самом деле % = модификация

результат 123 % 10 равен 3, так как mod равен только остатку.

num это int. и поэтому не может содержать никаких десятичных знаков
результат int / int всегда является int (округляется вниз, так как десятичное число просто теряется)

so 123 / 10 = 12


Итак, что это делает, так это берет последнюю цифру и добавляет ее к общей сумме до тех пор, пока не останется никаких цифр:


sum = 0;
num = 123;


pass1:
r = 123%10 = 3
num = 123/10 = 12
sum = 3

pass2:
r = 12%10 = 2
num = 123/10 = 1
sum = 5

pass3:
r = 1%10 = 1
num = 123/10 = 0
sum = 6

pass4:
завершается как num = 0


Я надеюсь, что это поможет

Энди ^_^


Member 13087536

спасибо Энди

Andy Lanng

Без проблем. Я помню, как впервые столкнулся с этим.

Не забывайте принимать ответы, чтобы люди могли найти решение для подобных проблем (и чтобы мы могли получить эти прекрасные очки ^_^)

Рейтинг:
1

Patrice T

Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволяет вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения, это невероятный инструмент обучения.

Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010-YouTube[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.


[no name]

Да, удачи. Он сказал мне, что его вопросы не мое дело, когда я сказал ему, что он должен научиться использовать отладчик.

Patrice T

ОП делает то, что хочет, я знаю, что мой совет хорош.

Рейтинг:
0

OriginalGriff

Нет, оператор модуля так не работает.

let we take num = 123
r=123%10=12.3,
Не право:
r = 123 % 10 = 3
Оператор модуля ' % ' возвращает остаток деления, do 123 / 10 == 12 остаток 3:
В случае модуля 10 он возвращает наименьшую значащую цифру, так как входное число находится в базе десять.


Member 13087536

спасибо

OriginalGriff

Пожалуйста!