Задать вопрос
@n0firt

DivideByZeroException при попытке найти число, приближённое к числу Эйлера. Как исправить?

Что-то смотрю и не вижу, в чём ошибка
Со стороны должно быть попроще

double e = 0; 
for (int n = 0; n < 100; n++) 
{ 
  int factorial = 1; 
  for (int i = 1; i <= n; i++) 
  { 
    factorial *= i; 
  } 
  e += 1 / factorial; //Здесь выдаёт исключение
}
  • Вопрос задан
  • 64 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 2
MrMureno
@MrMureno
VR for all
давайте предположим что у вас нормально с английским и вы поймете о чем тут речь
https://stackoverflow.com/questions/32042346/why-d...
полностью должно для вас пояснить что произошло.
Ответ написан
Комментировать
mindtester
@mindtester Куратор тега C#
http://iczin.su/hexagram_48
кроме размышлений о скорости роста значения факториала, осваивайте отладку:
- дебагер студии
- а для каких то 100 итераций, можно и вывод значений сделать, будет очень наглядно

если появится просветление, откройте для себя тип Biginteger

ps совет
так же стоит расширить эрудицию о диапазоне точности того же double. что то мне подсказывает, что даже если вы подтянете такую мощную штуку как Biginteger, значение переменной e перестанет изменять значения на существенно меньшем количестве итераций
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@german11235
Какова по вашему величина числа 100 факториал?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы