No Image

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

СОДЕРЖАНИЕ
486 просмотров
10 марта 2020

Исходник программы, которая находит сумму всех цифр в числе, введённого пользователем с клавиатуры. Исходник основан на цикле WHILE. Есть пояснительные комментарии к каждой строке. Увидеть исходный код и скачать скомпилированный исходник вы можете далее.

Исходный код программы, которая находит сумму цифр числа:

Математика – это очень просто, даже проще, чем мы можем себе представить. Сложной математику делают сами математики.

Страницы

воскресенье, 18 марта 2018 г.

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

Сумма цифр числа – это пляска шаманов с бубном, которая к математике никакого отношения не имеет. Да, на уроках математики нас учат находить сумму цифр числа и пользоваться нею, но на то они и шаманы, чтобы обучать потомков своим навыкам и премудростям, иначе шаманы просто вымрут.

Вам нужны доказательства? Откройте Википедию и попробуйте найти страницу "Сумма цифр числа". Её не существует. Нет в математике формулы, по которой можно найти сумму цифр любого числа. Ведь цифры – это графические символы, при помощи которых мы записываем числа и на языке математики задача звучит так: "Найти сумму графических символов, изображающих любое число". Математики эту задачу решить не могут, а вот шаманы – элементарно.

Давайте разберемся, что и как мы делаем для того, чтобы найти сумму цифр заданного числа. И так, пусть у нас есть число 12345. Что нужно сделать для того, чтобы найти сумму цифр этого числа? Рассмотрим все шаги по порядку.

1. Записываем число на бумажке. Что же мы сделали? Мы преобразовали число в графический символ числа. Это не математическое действие.

Графический символ числа

2. Разрезаем одну полученную картинку на несколько картинок, содержащих отдельные цифры. Разрезание картинки – это не математическое действие.

Читайте также:  Windows logs cbs можно удалить
Разрезание графического символа

3. Преобразовываем отдельные графические символы в числа. Это не математическое действие.

Преобразование цифр в числа

4. Складываем полученные числа. Вот это уже математика.

Сложение чисел

Сумма цифр числа 12345 равна 15. Вот такие вот "курсы кройки и шитья" от шаманов применяют математики. Но это ещё не всё.

С точки зрения математики не имеет значения, в какой системе счисления мы записываем число. Так вот, в разных системах счисления сумма цифр одного и того же числа будет разной. В математике система счисления указывается в виде нижнего индекса справа от числа. С большим числом 12345 я не хочу голову морочить, рассмотрим число 26 из статьи про странный значок. Запишем это число в двоичной, восьмеричной, десятичной и шестнадцатеричной системах счисления. Мы не будем рассматривать каждый шаг под микроскопом, это мы уже сделали. Посмотрим на результат.

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

Как видите, в разных системах счисления сумма цифр одного и того же числа получается разной. Подобный результат к математике никакого отношения не имеет. Это всё равно, что при определении площади прямоугольника в метрах и сантиметрах вы получали бы совершенно разные результаты.

Ноль во всех системах счисления выглядит одинаково и суммы цифр не имеет. Это ещё один аргумент в пользу того, что ноль не является числом. Вопрос к математикам: как в математике обозначается то, что не является числом? Что, для математиков ничего, кроме чисел, не существует? Для шаманов я могу такое допустить, но для ученых – нет. Реальность состоит не только из чисел.

Полученный результат следует рассматривать как доказательство того, что системы счисления являются единицами измерения чисел. Ведь мы не можем сравнивать числа с разными единицами измерения. Если одни и те же действия с разными единицами измерения одной и той же величины приводят к разным результатам после их сравнения, значит это не имеет ничего общего с математикой.

Читайте также:  Debian сбросить пароль root

Что же такое настоящая математика? Это когда результат математического действия не зависит от величины числа, применяемой единицы измерения и от того, кто это действие выполняет.

Как-то так. Если я в чем-то не прав, покажите мне это. Я придерживаюсь правила, которому меня научила математика: никогда никому не верь, даже себе – ты тоже можешь ошибаться.

Это problem из Project Euler, и этот вопрос включает в себя некоторый исходный код, поэтому рассмотрите это предупреждение вашего спойлера, если вы заинтересованы в его решении самостоятельно. Не рекомендуется распространять решения проблем, и это не то, что я хочу. Я просто нуждаюсь в небольшом подтасовке и руководстве в правильном направлении, добросовестно.

2 ^ 15 = 32768, а сумма его цифр равна 3 + 2 + 7 + 6 + 8 = 26.

Какова сумма цифр числа 2 ^ 1000?

Я понимаю предпосылку и математику проблемы, но я только начал практиковать С# неделю назад, поэтому мое программирование в лучшем случае шатко.

Я знаю, что int, long и ****** безнадежно неадекватны для того, чтобы точно удерживать 300 + (базовые 10) цифры 2 ^ 1000, поэтому необходима какая-то стратегия. Моя стратегия заключалась в том, чтобы установить вычисление, которое получает цифры один за другим, и надеемся, что компилятор сможет выяснить, как вычислить каждую цифру без некоторой ошибки, например, переполнения:

Кажется, что отлично работает для powerOfTwo 10 ответов

Обычный int не может помочь вам с таким большим количеством. Даже long . Они никогда не предназначены для обработки таких огромных чисел. int может хранить около 10 цифр (точный максимум: 2,147,483,647 ) и long примерно для 19 цифр (точный максимум: 9,223,372,036,854,775,807 ). Тем не менее, быстрый расчет из встроенного калькулятора Windows говорит мне, что 2^1000 – это число более 300 цифр.

Читайте также:  Как посчитать число в большой степени

(боковое примечание: точное значение может быть получено из int.MAX_VALUE и long.MAX_VALUE соответственно)

Как вы хотите точную сумму цифр, даже float или ****** типы won ‘ т, потому что они хранят только значимые цифры за несколько десятков цифр. ( 7 digit для float, 15-16 цифры для ******). Читайте здесь для получения дополнительной информации о представлении с плавающей запятой, двойной точности

Однако С# обеспечивает встроенную арифметику BigInteger для произвольной точности, которая должна соответствовать вашим потребностям (тестированию). т.е. может выполнять арифметику в любом количестве цифр (теоретически, конечно, на практике она ограничена памятью вашей физической машины и требует слишком много времени в зависимости от мощности вашего процессора)

Возвращаясь к вашему коду, я думаю, что проблема здесь

Это переполняет расчет. Ну, не совсем, но точность ****** не точно отражает фактическое значение результата, как я уже сказал.

Комментировать
486 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock
detector