Как зациклить алгоритм нахождения квадратного корня - C#

Узнай цену своей работы

Формулировка задачи:

пишу метод нахождения квадратного корня, всё вроде работает, алгоритм верный, НО не могу зациклить его, нужна помощь или дельный совет
Листинг программы
  1. public int Sqrt(long x)
  2. {
  3. long b = 0;
  4. long a = x;
  5. List<int> num = new List<int>();
  6. for (int i = 0; i <= x; i++)
  7. {
  8. b = a % 100;
  9. if (b == 0)
  10. break;
  11. num.Add((int)b);
  12. a /= 100;
  13. }
  14. List<int> otv = new List<int>();
  15. for (int j = 1; j <= 9; j++)
  16. {
  17. if (Quadro(j, 2) == num[num.Count - 1])
  18. {
  19. otv.Add(j);
  20. break;
  21. }
  22. if (Quadro(j, 2) > num[num.Count - 1])
  23. {
  24. otv.Add(j - 1);
  25. break;
  26. }
  27. }
  28. //с этого момента не могу зациклиться
  29. num[num.Count - 2] = num[num.Count - 2] + ((num[num.Count - 1] - (otv[0] * otv[0])) * 100);
  30. for (int k = 1; k <= 9; k++)
  31. {
  32. if (((((otv[0] * 2) * 10) + k) * k) == num[num.Count - 2])
  33. {
  34. otv.Add(k);
  35. break;
  36. }
  37. if (((((otv[0] * 2) * 10) + k) * k) >= num[num.Count - 2])
  38. {
  39. otv.Add(k - 1);
  40. break;
  41. }
  42. }
  43. return (int)x;
  44. }

Решение задачи: «Как зациклить алгоритм нахождения квадратного корня»

textual
Листинг программы
  1.         /// <summary>
  2.         /// Нахождение корня n-ой степени методом Ньютона
  3.         /// </summary>
  4.         /// <param name="A">Число, из которого требуется вычислить корень</param>
  5.         /// <param name="n">Степень корня</param>
  6.         /// <param name="eps">Точность вычислений</param>
  7.         /// <returns>Значение корня</returns>
  8.         public static double SqrtN(double A, int n, double eps)
  9.         {
  10.             double x1 = 0, x2 = 2;
  11.             do
  12.             {
  13.                 x1 = x2;
  14.                 x2 = (x1 * (n - 1) + A / Math.Pow(x1, n - 1)) / n;
  15.                
  16.             } while (Math.Abs(x1 - x2) > eps);
  17.             return x2;
  18.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы